設計模式包含了物件導向的精髓,「懂了設計模式,你就懂了物件導向分析和設計的精要」。
對類來說的,即乙個類應該只負責一項職責。
客戶端不應該依賴它不需要的介面,即乙個類對另乙個類的依賴應該建立在最小的介面上。
高層模組不應該依賴低層模組,二者都應該依賴其抽象。低層模組盡量都要有抽象類或介面,或者兩者都有,程式穩定性更好。
抽象不應該依賴細節,細節應該依賴抽象。
依賴倒置的中心思想是面向介面程式設計。
繼承時遵循黎克特制替換原則。
依賴關係傳遞的三種方式:
使用繼承會給程式帶來侵入性,程式的可移植性降低,增加物件之間的耦合性。在使用繼承時,子類中盡量不要重寫父類的方法。
通用做法:原來的父類和子類都繼承乙個更通俗的基類,原有的繼承關係去掉,採用依賴、聚合、組合等關係代替。
乙個軟體實體如類,模組和函式應該對擴充套件開放(對提供方),對修改關閉(對使用方)。用抽象構建框架,用實現擴充套件細節。開閉原則
乙個物件應該對其他物件保持最少的了解。只與直接的朋友通訊。
直接的朋友:出現在成員變數、方法引數、方法返回值中的類為直接的朋友,而出現在區域性變數中的類不是直接的朋友。也就是說,陌生的類最好不要以區域性變數的形式出現在內部。
盡量使用合成、聚合的方式,而不是使用繼承。
java設計模式0 設計模式簡介
設計模式 design pattern 是一套被反覆使用 多數人知曉的 經過分類編目的 設計經驗的總結。使用設計模式是為了可重用 讓 更容易被他人理解 保證 可靠性。軟體領域的設計模式起源於建築學。1977年,建築大師alexander出版了 a pattern language towns,bui...
設計模式 0 入門
目前軟體工程的設計模式主要是23種,可以根據模式的目的和模式的作用範圍進行分類。設計模式的本質是物件導向設計原則的實際運用,是對類的封裝性,繼承性和多型性以及類之間的關聯關係和組合關係的充分理解。優點結構型模式 行為型模式 作用範圍劃分 物件模式 單例 singleton 模式 某個類只能生成乙個例...
java設計模式系列 0 設計模式概述
1.設計模式簡介 設計模式 design pattern 是一套被反覆使用 多數人知曉的 經過分類編目的 設計經驗的總結。使用設計模式是為了可重用 讓 更容易被他人理解 保證 可靠性。2.分類 總體來說設計模式分為三大類 建立型模式,共五種 工廠方法模式 抽象工廠模式 單例模式 建造者模式 原型模式...