這裡的設計原則是大家公認的六條設計原則,即
單一職能原則
開閉原則
依賴倒置原則
黎克特制替換原則
介面隔離原則
迪公尺特法則
其實前面設計方法中有些也是原則,但是不是公認的原則,就歸置到了設計方法中。
關於這幾條的好的文章參見
我這裡再加幾句描述。這個幾條原則基本上也是解耦的原則。從解耦的角度看:
單一職能原則是說設計乙個類的粒度。只依賴於乙個變化。當有多個變化的時候拆分成不同的類。解除這種耦合。
開閉原則我認為更像是設計目的。
依賴倒置原則是說盡量依賴於抽象。抽象是穩定的,具體是善變的。依賴於抽象的耦合是送耦合,依賴於具體的耦合是緊耦合。
黎克特制替換原則是說如何判斷類的父子關係。滿足黎克特制替換就是父子,不滿足就不是。滿足父子關係的類的緊耦合,當不滿足的時候,用組合這種弱耦合。
介面隔離原則是說盡可能少的依賴介面。乙個介面中有若干方法,永不到的方法不要依賴。
迪公尺特法則是說依賴盡可能少的介面和類。生成乙個長的依賴鏈條。如:a依賴bc,b依賴c,改造為a依賴於b,b依賴於c。
設計模式無招勝有招之設計原理和方法
本文是 無招勝有招 的核心。首先宣告這裡講的設計原理和方法基本上是基於 可擴充套件性 做出的。當系統面臨變化的時候,如何抵擋變化對系統的衝擊。先看乙個例子,如果乙個類a呼叫了b中的乙個方法,那麼我們說a依賴於另乙個類b。你可以想象成a騎在b身上。當b動的時候,a也要跟著動。我們的目標是b自己都跟自己...
無招勝有招 物件導向設計模式隨筆
最近在學習物件導向設計模式,gof的23種設計模式大概看了一遍,簡單總結一下,設計模式主要分為三種模式,分別是建立模式,結構模式,行為模式。回過頭想一下具體有哪些模式,在什麼情況下用什麼設計模式,好像還是一頭霧水,但是我有幾點我卻印象深刻,下面就來說說我的感受。什麼是設計模式,我認為設計模式就是前人...
無生有 無勝有 PK 設計模式
無生有 無勝有 pk 設計模式 無生有,無勝有!如果乙個事物從無發展到有,那麼它以後的發展將受到這個 有 的因子的影響。並且有時,如果這個 有 的因子,是非常致命 強勢 根基,那麼後續它所衍生的子孫,可能都必須沿著它在幾個世紀前規定好的歷史固定的路線走,地球圍繞太陽的橢圓軌道執行,才能 允許出生 名...