定義:就乙個類而言,應該僅有乙個引起他變化的原因。
如果乙個類的職責太多,就等於把這些職責耦合到一起。乙個職責的變化,可能會消弱或抑制這個類完成其他職責的能力。這種耦合會導致脆弱的設計,當變化發生時,設計會遭受到意想不到的破壞。
軟體設計真正要做的許多內容就是發現職責並把職責分離,如果你能夠想到多餘乙個的動機去改變乙個類,那麼這個類就具有多餘乙個的職責。
軟體實體可以擴充套件,但是不可以修改。
在最初編寫**時,先假設變化不會發生。當發生變化後,我們就建立抽象來隔離以後可能發生同類的變化。
面對需求,程式的改動是通過增加新**進行的,而不是更改現有的**。
拒絕不成熟的抽象和抽象本身一樣重要。
1、高層模組和底層模組都應該依賴抽象。
2、細節也依賴抽象。
子類能夠替換父型別。
只有當子類可以替換掉父類,軟體單位功能不受影響時,父類才能正真的被復用,而子類也能在父類的基礎上正價新的行為。
由於子型別的可替換性才使得使用父類型別的模組在無需修改的情況下就可以擴充套件。
程式中所有的依賴關係都是終止於抽象類或者介面,就是物件導向的設計。
設計模式幾大原則
談到設計模式,不能不說一下grasp 職責分配原則 這個比模式更重要.我將再後邊接著來分析.下面我來分析一下設計模式原則,以及在設計模式中的體現.主要參考 程杰 大話設計模組 這裡用dh代替 和justin tech 的部落格.一 設計模式的核心原則是 開 閉 原則 open closed prin...
設計模式幾大原則
談到設計模式,不能不說一下grasp 職責分配原則 這個比模式更重要.我將再後邊接著來分析.下面我來分析一下設計模式原則,以及在設計模式中的體現.主要參考 程杰 大話設計模組 這裡用dh代替 和justin tech 的部落格.一 設計模式的核心原則是 開 閉 原則 open closed prin...
設計模式幾大原則
開閉原則 open close principle 對擴充套件開放,對修改封閉。該設計原則要求在程式要進行擴充套件的時候,不去修改原有 而是通過擴充套件新 來實現。這樣的程式 非常易於維護和公升級。單一原則 每個類應該實現單一的職責。如果某類多於乙個職責,就應該對其進行拆分。黎克特制替換原則 lis...