1、合成/聚合復用原則(carp)
簡而言之,對於合成/聚合復用原則的定義就是:要盡量使用合成和聚合,盡量不要使用繼承。
為什麼「要盡量使用合成和聚合,盡量不要使用繼承」呢?
這是因為:
第一,繼承復用破壞包裝,它把父類的實現細節直接暴露給了子類,這違背了資訊隱藏的原則;
第二:如果父類發生了改變,那麼子類也要發生相應的改變,這就直接導致了類與類之間的高耦合,不利於類的擴充套件、復用、維護等,也帶來了系統僵硬和脆弱的設計。而用合成和聚合的時候新物件和已有物件的互動往往是通過介面或者抽象類進行的,就可以很好的避免上面的不足,而且這也可以讓每乙個新的類專注於實現自己的任務,符合單一職責原則。
兩種判斷方法:
「is-a」代表乙個類是另外乙個類的一種,可以使用繼承關係,如下圖
而「has-a」代表乙個類是另外乙個類的乙個角色,而不是另外乙個類的特殊種類。如下圖
黎克特制代換原則是繼承復用的基礎。
具體介紹:設計模式六大原則——黎克特制代換原則
2、迪公尺特法則(lod)
摘要: 1、背景 在圖書館借書,剛開始的時候,直接跑到相應的樓層去,到裡面去轉,去找要借的書,在裡面溜達半天才能找到;後來知道圖書館有乙個電腦查詢處,然後
在圖書館借書,剛開始的時候,直接跑到相應的樓層去,到裡面去轉,去找要借的書,在裡面溜達半天才能找到;後來知道圖書館有乙個電腦查詢處,然後直接在電腦上輸入想要借的書,電腦就會顯示你想要借的書的資訊,還有所在的相關樓層存放的相關位置。
迪公尺特法則(law of demeter)又叫作最少知識原則(lkp,least knowledge principle),就是說乙個物件應當對其他物件有盡可能少的了解,類與類之間的了解的越多,關係越密切,耦合度越大,當乙個類發生改變時,另乙個類也可能發生變化。
核心思想:最少依賴
具體體現:
設計模式六大原則
0.05 設計模式 設計模式 規範 筆記 大話設計模式 物件導向的關鍵在於封裝,封裝好了才能很好的復用,達到單一職責和開放擴充套件 封閉更改的效果。1 單一職責原則 就乙個類而言,應該僅有乙個引起它變化的原因.增加功能不應該修改已有的 避免修改出錯及重複測試.如果你能夠想到多於乙個的動機去改變乙個類...
設計模式六大原則
0.05 設計模式 設計模式 規範 筆記 大話設計模式 物件導向的關鍵在於封裝,封裝好了才能很好的復用,達到單一職責和開放擴充套件 封閉更改的效果。1 單一職責原則 就乙個類而言,應該僅有乙個引起它變化的原因.增加功能不應該修改已有的 避免修改出錯及重複測試.如果你能夠想到多於乙個的動機去改變乙個類...
設計模式六大原則
參考文章 單一職責原則 single responsibility principle,srp 乙個類只負責乙個功能領域中的相應職責,或者可以定義為 就乙個類而言,應該只有乙個引起它變化的原因。開閉原則 open closed principle,ocp 乙個軟體實體應當對擴充套件開放,對修改關閉。...