## 目錄 - 封裝變化 - 針對介面編程,不針對實現編程 - 多用組合(has-a),少用繼承(is-a) - 為交互對象之間的松耦合設計而努力 - 最少知識原則 LKP / 迪米特法則 Law of Demeter - 好萊塢原則 - SOLID 原則 - 單一職責原則 SRP - 開放關閉原則 ...
目錄
- 封裝變化
- 針對介面編程,不針對實現編程
- 多用組合(has-a),少用繼承(is-a)
- 為交互對象之間的松耦合設計而努力
- 最少知識原則 LKP / 迪米特法則 Law of Demeter
- 好萊塢原則
- SOLID 原則
- 單一職責原則 SRP
- 開放關閉原則 OCP
- 里氏替代原則 LSP
- 介面隔離原則 ISP
- 依賴倒置原則 DIP
- DRY 原則
- KISS 原則
封裝變化
找出應用中需要經常變化的部分,把他們獨立出來,改變這部分代碼不影響其他部分。這幾乎是每個設計模式背後的精神所在,即系統中某部分的改變不影響其他部分。
針對介面編程,不針對實現編程
針對介面編程,關鍵在於多態。變數/成員/形參的聲明應該是抽象類/介面類/父類,即所有的代碼操作的都是父類/介面類/抽象類(如 Animal),只會在一處會涉及到具體類(如 Cat 或 Dog),那就是在用 new 實例化具體子類對象時,而這部分代碼最好也用工廠封裝起來,這樣甚至可以在運行時動態實例化不同的子類對象。