高層模組(穩定)不應該依賴於低層模組(變化),二者都應依賴於抽象(穩定)
抽象(穩定)不應該依賴於實現細節(變化)實現細節應該依賴於抽象(穩定)對擴充套件開放,對更改關閉
類模組應該是可以擴充套件的,但是不可修改乙個類僅有乙個引起它變化的原因
變化的方向隱含類的責任子類必須能夠替換它們的基類(is-a)
子類能呼叫父類的所有方法
繼承表達型別抽象不應該強迫客戶程式依賴他們不用的方法
介面應該小而完備
能private不public
類繼承通常為"白箱復用",物件組合通常為"黑箱復用"
繼承在莫種程度上破壞了封裝性,子類父類耦合度高
物件組合只要求被組合的物件具有良好定義的介面,耦合度低封裝主要目的為封裝變化
使用封裝來建立物件之間的分界層
讓設計者可以在分界層的一側進行修改,而不會對另一側產生不良影響,從而從而實現層次間的松耦合
不將變數型別宣告為某個特定的具體類,而是宣告為某個介面
客戶程式無需獲知物件的具體型別,只需要知道物件所具有的介面
減少系統中各部分的依賴關係,從而實現"高內聚,松耦合"的型別實現方案產業強盛的標誌:介面標準化
核心:分工協作 -->實現復用性
設計習語 design idioms
design idioms描述與特定程式語言相關的低層模式,技巧,慣用法
設計模式 design patterns
design patterns主要描述的是類與互相通訊的物件之間的組織關係,包括它們的角色,職責,協作方式等方面
架構模式architectural patterns
architectural patterns描述系統中基本組織結構關係密切的高層模式,包括子系統劃分,職責,以及如何阻止它們之間關係的規則
設計模式 設計模式原則
1 單一職責原則 srp 乙個類應當只有乙個引起其變化的原因。使用單一職責原則的好處有 1 類的複雜性降低 2 可讀性提高 3 可維護性提高 4 變更引起的風險降低 2 黎克特制替換原則 lsp 在使用父類的地方,可以使用其子類替換。黎克特制替換原則的含義 1 子類必須完全實現父類的方法 2 子類可...
設計模式 設計原則
1.單一職責原則 single responsibility principle,簡稱srp 就乙個類而言,應該僅有乙個引起它變化的原因。如果乙個類承擔的職責過多,就等於把這些職責耦合在一起,乙個職責的變化可能會削弱或抑制這個類完成其他職責的能力。這種耦合會導致脆弱的設計,當變化發生時,設計會遭受到...
設計模式 設計原則
description 這是本人學習 設計模式之禪 的筆記 設計原則 一 單一職責 應該有且僅有乙個原因讓乙個類發生變更。這個原則目的是要讓介面的職責分明,結構清晰。優點 類的複雜度降低,可讀性提高,變更風險低,可維護性提高。二 黎克特制替換 通俗一點就是父類存在的地方,可以替換為子類,而程式的行為...