单一职责原则
- 一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。
- SRP==Single Responsibility Rrinciple
- 就一个类而言,应该仅有一个引起它变化的原因。
- 更高的内聚性,完全的低耦合
- 将不同的职责分离
示例
- 比如,一个客户关系管理系统,如果设计成一个类,该类中同时有
- getConnection():Connection
- findCustomers():List
- createChart():void
- displayChart():void
- 而对应这些方法,分别是为了实现
- 数据库连接功能
- 查询所有客户信息
- 创建功能图表
- 显示功能图表
- 这种情况下,这个类就需要重构,用单一原则来重构
创建类
- DBUtil类,专门负责数据库连接,在其中给出getConnection方法
- CustomerDAO类,负责操作数据库中的Customer表,全部的CRUD操作都在其中,自然也包括findCustomers方法,返回客户列表信息
- CustomerChart类,负责图表的生成和显示,可以包括crreateChart和displayChart方法
重构以后,类之间的依赖关系
- CustomerChart是顶层的,依赖于CustomerDAO提供相应的数据
- CustomerDAO操作数据库,事先要给出数据库连接,肯定依赖于DBUtil类
每一个类的职责单一化
- 职责单一的理解上,其实还有一个方面,那就是职责相似的进行的集中,尽可能追求高内聚
- 方便功能的调整,添加和修改相应的功能,不会引发其它类的太多变化
- 尽可能的完成了解耦,尽可能追求高内聚
本文介绍单一职责原则,即一个对象应只含单一职责且封装在一个类中,一个类仅有一个引起变化的原因。以客户关系管理系统为例,展示如何用该原则重构类,重构后各层类职责单一,依赖关系明确,实现了解耦和高内聚,方便功能调整。
222

被折叠的 条评论
为什么被折叠?



