面向對象基礎 1. 抽象 2. 封裝 3. 繼承 4. 多態 5. 組合 良好的OO設計 1. 可復用 2. 可擴充 3. 可維護 4. 設計模式 ...
面向對象基礎設計原則
- 抽象
- 封裝
- 繼承
- 多態
- 組合
典型的設計原則
- Liskov替換原則(LSP)
- 即子類型必須能夠替換他們的基類型,或者說子類型不能添加任何基類型沒有的附加約束。
- 針對介面編程思想:實現繼承破壞了基類的實現,介面繼承並不定義對象之間的內部關係,耦合度更低,擴展性更好
- 開放-封閉原則(OCP)
- 即對修改封閉,對擴展開放
- 基本思想就是封裝變化的行為作為抽象類或介面
- 策略模式和模板方法模式提供了實現
- 單一職責原則(SRP)
- 即一個類應當只有一個職責
- 建立高內聚的類,分離出不相關的功能
- 介面隔離原則(ISP)
- 即介面的單一職責性
- 定製服務,為不同的角色提供不同的介面,防止介面污染
- 依賴倒置原則(DIP)
- 即高層模塊不應依賴於低層模塊,兩者都應該依賴於抽象
- 面向介面編程,讓高層與低層都依賴介面(抽象)
- 其他表述
- 好萊塢原則:呆著別動,到時我會找你
- 控制反轉(IoC)或依賴註入
- 比如利用抽象工廠模式解除兩個類之間的依賴關係;利用Spring框架通過XML配置文件建立介面和具體類之間的關係
良好的OO設計
- 可復用
- 可擴充
- 可維護
- 23種GoF設計模式