## 連載:面向對象葵花寶典:思想、技巧與實踐(36) - 設計原則如何用?
經過前面深入的闡述,SOLID的原則我們已經基本上講清楚了,但如果想熟練的應用SOLID原則,僅僅知道SOLID是什么(what)還不夠,我們還需要知道SOLID原則在什么時候和什么場景應用(when或where)。
?
幸運的是,SOLID原則的5個獨立原則在實際應用中基本上都是獨擋一面,并不會在某個地方需要同時從可選的幾個原則中挑選一個最優的原則來應用,這樣大大降低了我們應用SOLID原則的難度。
?
SOLID原則具體的應用場景如下:
* SRP原則:用于類的設計
當我們想出一個類,或者設計出一個類的原型后,使用SRP原則核對一下類的設計是否符合SRP要求。
?
* OCP原則:總的指導思想
OCP原則是一個總的指導思想,在面向對象的設計中,如果能夠符合LSP/ISP/DIP原則,一般情況下就能夠符合OCP原則了。
除了在面向對象的軟件設計中外,OCP也可以用于指導系統架構設計,例如常見的CORBA、COM協議,其實都可以認為是OCP原則的具體應用和實現。
?
* LSP原則:用于指導類繼承的設計
當我們設計類之間的繼承關系時,使用LSP原則來判斷這種繼承關系是否符合LSP要求。
?
* ISP原則:用于指導接口的設計
ISP原則可以認為是SRP原則的一個變種,本質上和SRP的思想是一樣。SRP用于指導類的設計,而ISP用于指導接口的設計。
?
* DIP原則:用于指導類依賴的設計
當我們設計類之間的依賴關系時,可以使用DIP原則來判斷這種依賴是否符合DIP原則。
DIP原則和LSP原則相輔相成:DIP原則用于指導抽象出接口或者抽象類,而LSP原則指導從接口或者抽象類派生出新的子類。
- 前言
- (1) - 程序設計思想的發展
- (2) - 面向對象語言發展歷史
- (3) - 面向過程 vs 面向對象
- (4) - 面向對象是瑞士軍刀還是一把錘子?
- (5) - 面向對象迷思:面向對象導致性能下降?
- (6) - 不要說你懂“類”
- (7) - “對象”新解
- (8) - “接口” 詳解
- (9) - “抽象類” 詳解
- (10) - “抽象” 詳解
- (11) - “封裝” 詳解
- (12) - “繼承” 詳解
- (13) - “多態” 詳解
- (14) - 面向對象開發技術流程
- (15) - 需求詳解
- (16) - 需求分析終極目的
- (17) - 需求分析518方法
- (18) - 用例分析
- (19) - 功能點提取
- (20) - 用例圖的陷阱
- (21) - SSD
- (22) - 領域模型
- (23) - 領域建模三字經
- (24) - 設計模型
- (25) - 類模型
- (26) - 類模型三板斧
- (27) - 動態模型設計
- (28) - 設計原則:內聚&耦合
- (29) - 高內聚低耦合
- (30) - SRP原則
- (31) - OCP原則
- (32) - LSP原則
- (33) - ISP原則
- (34) - DIP原則
- (35) - NOP原則
- (36) - 設計原則如何用?
- (37) - 設計模式:瑞士軍刀 or 錘子?
- (38) - 設計模式之道
- (39) - 設計原則 vs 設計模式
- (40) - DECORATOR模式
- (完)- 書籍已經出版