在物件導向程式中,遵循SOLID這五項基本原則,可幫助程式設計師可以寫出好維護且彈性的程式架構 :
- Single responsibility principle(SRP) 單一職責
-
就單一物件而言,應該只有一個引起其變化的原因
-
實際開發中的體現,比如一個物件僅是某一個事物相關的集合,單一函數僅執行單一職責,避免添加部必要亦或不相關的程式邏輯,進而提高程式的可維護性,可復用性。
-
- Open/close principle(OCP) 開放/封閉原則
-
OCP係指軟體實體(類、模塊、函數等等)皆應可擴展,但不可以修改,即對擴展是開放的,然而對修改是關閉的。
-
在實務上當有新的需求增加時,應該通過增加新的代碼來完成,而不是修改現有的代碼。然而絕對的對修改關閉是不可能的,但仍可預先猜測最有可能發生的變化種類,然後構造抽象來隔離那些變化。
-
- Liskov substitution principle(LSP) Liskov替換
- 子類別應該可以替換掉父類別而不會影響程式架構
- 子類別應該可以替換掉父類別而不會影響程式架構
- Interface Segregation Principle(ISP) 介面隔離
- 透過介面將功能的實體分離出來
- 透過介面將功能的實體分離出來
- Dependency Inversion Principle(DIP) 依賴反轉
-
高層模塊不應該依賴底層模塊。兩個都應該依賴抽象
-
抽象不應該依賴細節。細節應該依賴抽象
-
然而對於重複性出現的問題,提出及其解決方案即可稱之為"Design Pattern"。因此每一個設計模式應具備以下特徵 :
- Name : 模式名稱
- Context : 問題的發生情境
- Problem : 問題本身
- Force : 問題的限制或特性
- Solution : 解決問題的方法
- Resulting Context : 結果
而其中「Design Patterns: Elements of Reusable Object-Oriented Software」一書最為著名,其針對某些常見的問題提出解決方案。以下為"Gof 23 Design Pattern"所提出的模式與分類。
Gof 23 Design Pattern
Creational 模式
- Builder 模式
- Prototype 模式
- Singleton 模式
- Simple Factory 模式
- Abstract Factory 模式
- Factory Method 模式
- Registry of Singleton 模式
Structural 模式
- Default Adapter 模式
- Adapter 模式 - Object Adapter
- Adapter 模式 - Class Adapter
- Bridge 模式
- Composite 模式
- Decorator 模式
- Facade 模式
- Flyweight 模式
- Proxy 模式
Behavioral 模式
- Chain of Responsibility 模式
- Command 模式
- Iterator 模式
- Strategy 模式
- Template Method 模式
- Observer 模式
- Mediator 模式
- State 模式
- Memento 模式
- Visitor 模式
- Interpreter 模式
文章標籤
全站熱搜
留言列表