讀書筆記設計

來源:文萃谷 3.14W

項籍少時,學書不成,去;學劍,又不成,項梁怒之。籍曰:“書足以記名姓而已。劍一人敵,不足學,學萬人敵。”

讀書筆記設計

——《史記 項羽本紀》

最近才意識到軟件工程類知識的重要性,軟件工程的知識就跟兵法一樣,要做到“萬人敵”,軟件工程的學習是必不可少的。從現在開始學習設計模式的一些知識,以下的為筆記。

設計模式説白了就是一些成功的面向對象設計的經驗,設計模式可以讓我們更加方便的複用成功的設計和體系結構。

模式的四個基本要素:

1. 模式名稱;例如:工廠模式

2. 問題;描述了應該在何時使用模式;

3. 解決方案;

4. 效果。

設計的幾個原則:

一、”開放—封閉“原則(OCP)

Open-Closed Principle原則是説一個軟件應該對擴展開放,對修改關閉。

這樣做的好處是可以通過擴展已有的系統提供新的行為以滿足新的需求,提高軟件的適應 性和靈活性。已有的軟件模塊(特別是抽象層)不應該再修改,這樣做是為了提高軟件的'穩定性和延續性。

二、“里氏代換”原則(LSP)

Liskov Substitution Principle是説子類型必須能夠替換他們的基類型。這是繼承的特性。”男人“繼承”人“,男人必須是人吧?

三、依賴倒置原則(DIP)

Dependence Inversion Principle原則是説要依賴於抽象,不要依賴於具體。簡單的説,依賴倒置原則要求客户端依賴於抽象耦合。原則表述:抽象不應當依賴於細節;細節應當依賴於抽象;要針對接口編程,不針對實現編程。

四、接口隔離原則(ISP)

Interf-ace Segregation Principle是説使用多個專門的接口比使用單一的總接口總要好。換而言之,從一個客户類的角度來講:一個類對另外一個類的依賴性應當是建立在最小接口上的。過於臃腫的接口是對接口的污染。不應該強迫客户依賴於它們不用的方法。

五、合成聚合複用原則(CARP)

Composite/Aggregate Reuse Principle就是在一個新的對象裏面使用一些已有的對象,使之成為新對象的一部分;新對象通過向這些對象的委派達到複用已有功能的目的。簡而言之,要儘量使用合成/聚合,儘量不要使用繼承。

六、迪比特原則(LoD)

迪米特法則(Law of Demeter或簡寫LoD)又叫最少知識原則(Least Knowledge Principle或簡寫為LKP),也就是説,一個對象應當對其它對象有儘可能少的瞭解。

熱門標籤