连载:面向对象葵花宝典:思想、技巧与实践(36) - 设计原则如何用?
来源:互联网 发布:生日相册制作软件 编辑:程序博客网 时间:2024/05/17 05:09
经过前面深入的阐述,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原则指导从接口或者抽象类派生出新的子类。
================================================
转载请注明出处:http://blog.csdn.net/yunhua_lee/article/details/37900899
================================================
- 连载:面向对象葵花宝典:思想、技巧与实践(36) - 设计原则如何用?
- 面向对象葵花宝典:思想、技巧与实践(36) - 设计原则如何用?
- 连载:面向对象葵花宝典:思想、技巧与实践(39) - 设计原则 vs 设计模式
- 连载:面向对象葵花宝典:思想、技巧与实践(28) - 设计原则:内聚&耦合
- 连载:面向对象葵花宝典:思想、技巧与实践(30) - SRP原则
- 连载:面向对象葵花宝典:思想、技巧与实践(31) - OCP原则
- 连载:面向对象葵花宝典:思想、技巧与实践(32) - LSP原则
- 连载:面向对象葵花宝典:思想、技巧与实践(33) - ISP原则
- 连载:面向对象葵花宝典:思想、技巧与实践(34) - DIP原则
- 连载:面向对象葵花宝典:思想、技巧与实践(35) - NOP原则
- 连载:面向对象葵花宝典:思想、技巧与实践(24) - 设计模型
- 连载:面向对象葵花宝典:思想、技巧与实践(27) - 动态模型设计
- 连载:面向对象葵花宝典:思想、技巧与实践(37) - 设计模式:瑞士军刀 or 锤子?
- 连载:面向对象葵花宝典:思想、技巧与实践(38) - 设计模式之道
- 连载:面向对象葵花宝典:思想、技巧与实践(3) - 面向过程 vs 面向对象
- 连载:面向对象葵花宝典:思想、技巧与实践(3) - 面向过程 vs 面向对象
- 连载:面向对象葵花宝典:思想、技巧与实践(3) - 面向过程 vs 面向对象
- 连载:面向对象葵花宝典:思想、技巧与实践(3) - 面向过程 vs 面向对象
- HTML5标签名小写
- 动态库的扩展名
- SMARTFORMS打印前9页显示*如何解决
- 函数参数传递 “指针的指针” (或是指针的引用)
- Readme-linux yaffs2(译)
- 连载:面向对象葵花宝典:思想、技巧与实践(36) - 设计原则如何用?
- JDK安装后 没有tools.jar 和dt.jar包的解决办法
- php数组函数大全
- win查看和关闭端口
- Android Touch和Click的区别
- memset函数使用详解
- org.springframework.web.multipart.MultipartException: The current request is not a multipart request
- JDBC性能优化方案
- 直接插入排序