面向对象设计原则01-单一职责原则-提高软件的可维护性和可复用性

版权声明:本文为博主原创文章,经博主允许,可自由共享,尽量不要用于商业用途。 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类

每一个类的职责单一化

  • 职责单一的理解上,其实还有一个方面,那就是职责相似的进行的集中,尽可能追求高内聚
  • 方便功能的调整,添加和修改相应的功能,不会引发其它类的太多变化
  • 尽可能的完成了解耦,尽可能追求高内聚

猜你喜欢

转载自blog.csdn.net/matrixbbs/article/details/90632454