版权声明:本文为博主原创文章,经博主允许,可自由共享,尽量不要用于商业用途。 https://blog.csdn.net/matrixbbs/article/details/90632454
单一职责原则
- 一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。
- 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类
每一个类的职责单一化
- 职责单一的理解上,其实还有一个方面,那就是职责相似的进行的集中,尽可能追求高内聚
- 方便功能的调整,添加和修改相应的功能,不会引发其它类的太多变化
- 尽可能的完成了解耦,尽可能追求高内聚