1.1 六大原則 (總原則-開閉原則:對擴展開放,對修改封閉。)
- 單一職責原則
- 不要存在多於一個導致類變更的原因,也就是說每個類應該實現單一的職責,否則就應該把類拆分。
- 里氏替換原則(Liskov Substitution Principle)
- 對“開-閉”原則的補充
- 是繼承復用的基石:任何基類可以出現的地方,子類一定可以出現。
- 依賴倒轉原則(Dependence Inversion Principle)
- 面向接口編程,依賴於抽象而不依賴於具體
- 接口隔離原則(Interface Segregation Principle)
- 每個接口中不存在子類用不到卻必須實現的方法,如果不然,就要將接口拆分
- 迪米特法則(最少知道原則)(Demeter Principle)
- 一個類對自己依賴的類知道的越少越好
- 最少知道原則的另一個表達方式是:只與直接的朋友通信。
類之間只要有耦合關系,就叫朋友關系。耦合分為依賴、關聯、聚合、組合等。
我們稱出現為成員變量、方法參數、方法返回值中的類為直接朋友。
局部變量、臨時變量則不是直接的朋友。我們要求陌生的類不要作為局部變量出現在類中。
- 合成復用原則(Composite Reuse Principle)
- 盡量首先使用合成/聚合的方式,而不是使用繼承。
1.2 三大類型
- 創建者模式(Creational Pattern)
- 對類的實例化過程進行了抽象,能夠將軟件模塊中對象的創建和對象的使用分離
- 結構型模式(Structural Pattern)
- 描述如何將類或者對象結合在一起形成更大的結構;
- 可分為類結構型模式和對象結構型模式
- 行為型模式(Behavioral Pattern)
- 不僅僅關注類和對象的結構,而且重點關注它們之間的相互作用,是對在不同的對象之間划分責任和算法的抽象化
- 分為類行為型模式和對象行為型模式
- 根據“合成復用原則”,系統中要盡量使用關聯關系來取代繼承關系