面向對象基礎設計原則
- 抽象
- 封裝
- 繼承
- 多態
- 組合
典型的設計原則
-
Liskov替換原則(LSP)編程
- 即子類型必須可以替換他們的基類型,或者說子類型不能添加任何基類型沒有的附加約束。
- 針對接口編程思想:實現繼承破壞了基類的實現,接口繼承並不定義對象之間的內部關係,耦合度更低,擴展性更好
-
開放-封閉原則(OCP)設計模式
- 即對修改封閉,對擴展開放
- 基本思想就是封裝變化的行爲做爲抽象類或接口
- 策略模式和模板方法模式提供了實現
-
單一職責原則(SRP)框架
- 即一個類應當只有一個職責
- 創建高內聚的類,分離出不相關的功能
-
接口隔離原則(ISP)設計
- 即接口的單一職責性
- 定製服務,爲不一樣的角色提供不一樣的接口,防止接口污染
-
依賴倒置原則(DIP)對象
- 即高層模塊不該依賴於低層模塊,二者都應該依賴於抽象
- 面向接口編程,讓高層與低層都依賴接口(抽象)
- 其餘表述
- 好萊塢原則:呆着別動,到時我會找你
- 控制反轉(IoC)或依賴注入
- 好比利用抽象工廠模式解除兩個類之間的依賴關係;利用Spring框架經過XML配置文件創建接口和具體類之間的關係
-
迪米特准則(LOD)blog
- 即一個類對於所依賴的類知道的越少越好
- 這是一個實用的職責分配模式,他指出應該與直接朋友通訊,將系統的耦合度保持最低
- 被依賴的類對外公開的方法要少,要創建中間人委託機制,進而面向接口編程
良好的OO設計
- 可複用
- 可擴充
- 可維護
- 設計模式
23種GoF設計模式
設計模式分爲類模式和對象模式,類模式處理類和派生類之間的繼承關係,對象模式處理對象之間的組織關係。
繼承