一.單一職責原則:就乙個類而言,應該僅有乙個引起它變化的原因
1.就乙個類而言,應該僅有乙個引起它變化的原因;
2.如果乙個類承擔的職責過多,就等於把這些職責耦合在一起,乙個職責的變化可能會消弱或者抑制這個類完成其他職責的能力。這種耦合會導致脆弱的設計,當變化發生時,設計會遭受到意想不到的破壞;
3.軟體設計真正要做的許多內容,就是發現職責並把那些職責相互分離;
4.如果你能夠想到多於乙個的動機去改變乙個類,那麼這個類就具有多於乙個的職責。
二.開放--封閉原則:是說軟體實體(類、模組、方法等等)應該可以擴充套件,但不能修改
1.對於擴充套件是開放的;
2.對於修改是封閉的;
3.無論模組多麼的「封閉」,都會存在對其無法封閉的變化。既然不可能完全封閉,設計人員必須對他設計的模組應該對哪種變化封閉作出選擇;(他必須先猜出最有可能發生變化的種類,然後構造抽象來隔離那些變化。)
4.在我們最初編寫**時,假設變化不會發生。當發生變化時,我們就會建立抽象來隔離以後發生的同類變化;
5.面對需求,對程式的改動是通過增加新**進行的,而不是更改現有的**;
6.開放-封閉原則是物件導向程式設計的核心所在。遵循這個原則可以帶來物件導向技術所聲稱的巨大好處,也就是可維護、可擴充套件、可復用、靈活性好。開發人員應該僅對程式中呈現出頻繁變化的那些部分做出抽象,然而,對於應用程式中的每個部分都刻意得進行抽象同樣不是乙個好主意。拒絕不成熟的抽象和抽象本身一樣重要。
三.依賴倒轉原則:高層模組不應該依賴底層模組。兩個都應該依賴抽象。抽象不應該依賴細節。細節應該依賴抽象。
1.黎克特制代換原則:子型別必須能夠替換掉它們的父型別。
2.乙個軟體實體如果使用的是乙個父類的話,那麼一定適用於其子類,而且它察覺不出父類物件和子類物件的區別。也就是說,在軟體裡面,把父類都替換成它的子類,程式的行為沒有變化;
四.迪公尺特原則
2.迪公尺特法則的主要用以是控制資訊的過載;
設計模式幾大原則
談到設計模式,不能不說一下grasp 職責分配原則 這個比模式更重要.我將再後邊接著來分析.下面我來分析一下設計模式原則,以及在設計模式中的體現.主要參考 程杰 大話設計模組 這裡用dh代替 和justin tech 的部落格.一 設計模式的核心原則是 開 閉 原則 open closed prin...
設計模式幾大原則
談到設計模式,不能不說一下grasp 職責分配原則 這個比模式更重要.我將再後邊接著來分析.下面我來分析一下設計模式原則,以及在設計模式中的體現.主要參考 程杰 大話設計模組 這裡用dh代替 和justin tech 的部落格.一 設計模式的核心原則是 開 閉 原則 open closed prin...
設計模式幾大原則
開閉原則 open close principle 對擴充套件開放,對修改封閉。該設計原則要求在程式要進行擴充套件的時候,不去修改原有 而是通過擴充套件新 來實現。這樣的程式 非常易於維護和公升級。單一原則 每個類應該實現單一的職責。如果某類多於乙個職責,就應該對其進行拆分。黎克特制替換原則 lis...