设计模式学习之——六大设计原则之一:单一职责原则
来源:互联网 发布:谷歌地图js api接口 编辑:程序博客网 时间:2024/06/13 14:13
六大设计原则:
Single Responsibility Principle: 单一职责原则
Open Closed Principle: 开闭原则
Liskov Substitution Principle: 里氏替换原则
Law Of Demeter: 迪米特法则
Interface Segregation Principle: 接口隔离原则
Dependence Inversion Principle: 依赖倒置原则
单一职责原则:
定义:There should never be more than one reason for a class to change.
定义应该都能看懂,反正我这个大学四级都没过的都大概看懂了,哈哈
直接进入例子说明:
电话类图:注:dial:拨通电话;chat:通话;hangup:挂电话
这么一个接口包含两个职责:协议管理(dial,hangup)和数据传送(chat)
这样看来,协议接通会引起这个接口或类的变化,数据传送也会引起这个接口或类的变化。
两个原因都引起了类的变化。但是!!这两个职责并不互相影响。所以说:拆分!!!
如下关系图(画图不好画啊,幸好有VS):
这么做,我们就实现了单一职责。但是这样会导致一个问题:该方式需要把ConnectionManager和DataTransfer组合在一起才能使用,组合是一种强耦合关系拥有共同生命期,而且增加了类的复杂性,多了两个类,不好不好。修改后如下:
完美:一个类实现两个接口,两个职责融合在了一个类中,虽然一个Phone有两个原因引起了变化,但是别忘记,我们是面向接口编程。公布的是接口而非实现类。
单一职责原则的优点:
a. 类的复杂性降低
b. 可读性提高
c. 可维护性提高
d. 变更引起的风险降低
注:单一职责原则提出了一个编写程序的标准,用“职责”或“变化原因”衡量接口或类设计得是否优良,但这些都是不可度量的,所以,我们需要因项目而异,因环境而异
单一职责原则同样适用于方法:即一个方法尽可能做一件事。
对于单一职责原因:接口一定要做到单一职责,类的设计尽量做到只有一个原因引起变化。
0 0
- 设计模式学习之——六大设计原则之一:单一职责原则
- 设计模式学习之——六大设计原则之一:单一职责原则
- 设计模式学习之——六大设计原则之一:单一职责原则
- 设计模式六大原则——单一职责原则
- 设计模式六大原则1—单一职责原则
- 《设计模式》六大原则之一:单一职责原则
- 设计模式六大原则之一:单一职责原则
- 设计模式六大原则之一:单一职责原则
- 设计模式六大原则:单一职责原则
- 设计模式六大原则-------单一职责原则
- 设计模式六大原则:单一职责原则
- 设计模式六大原则---单一职责原则
- 设计模式六大原则----------单一职责原则
- 设计模式六大原则 单一职责原则
- 设计模式六大原则:单一职责原则
- 设计模式六大原则-单一职责原则
- 设计模式六大原则---单一职责原则
- 第三拍摄UFO---单一职责原则(读书笔记)(设计模式六大原则之一单一职责原则)
- php遍历关联数组的三种方法
- Spring事务管理与数据库隔离级别的关系(Spring+mysql)
- 新闻发布 sql server代码
- OC 代理 协议 委托 数据源的概念-转载
- js跨域访问
- 设计模式学习之——六大设计原则之一:单一职责原则
- 采用MQTT协议实现Android推送
- dex file format
- java内部类 内部静态类.
- Windows中检测联网(三)
- c#委托几篇好文章 续篇
- Delphi 获取时间的年月日时分秒
- 数据库复习3
- 【分享】方言普通话语音识别语料库(语篇部分)-600人