## 连载:面向对象葵花宝典:思想、技巧与实践(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模式
- (完)- 书籍已经出版