第3章 軟件的可維護性和可復用性
3.1
真正的原因:
過于僵硬;過于脆弱;復用率低;黏度過高
設計目標:
可擴展性;靈活性;可插入性

3.2
在面向對象的設計里面,可維護性復用是以設計原則和設計模式為基礎的
設計原則:
“開-閉”原則
里氏代換原則
依賴倒轉原則
接口隔離原則
組合/聚合復用原則
迪米特法則


第4章 “開-閉”原則(OCP)
4.1
“開-閉”原則:一個軟件實體應當對擴展開放,對修改關閉
即,在設計一個模塊的時候,應當使這個模塊可以在不被修改的前提下被擴展。換言之,應當可以在不必修改源代碼的情況下改變這個模塊的行為。

4.2
抽象是關鍵

對可變性的封裝原則:
1)一種可變性不應當散落在代碼的很多角落里,而應當被封裝到一個對象里面。
繼承應當被看做是封裝變化的方法,而不應當被認為是以一般的對象生成特殊的對象的方法。
2)一種可變性不應當與另一種可變性混合在一起。

4.3
里氏代換原則:
任何基類可以出現的地方,子類一定可以出現。

依賴倒轉原則:
要依賴于抽象,不要依賴于實現。

合成/聚合復用原則:
要盡量使用合成/聚合,而不是繼承關系達到復用的目的。

迪米特法則:
一個軟件實體應當與盡可能少的其他實體發生相互作用。

接口隔離原則:
應當為客戶端提供盡可能小的單獨的接口,而不要提供大的總接口。

4.4
*

4.5
*

4.6
“將條件轉移語句改寫成為多態性”?
如果一個條件轉移語句確實封裝了某種商務邏輯的可變性,那么將此種可變性封裝起來就符合“開-閉”原則設計思想了。



歡迎大家訪問我的個人網站 萌萌的IT人