认识单一职责原则

         单一职责原则是面向对象设计中最重要的原则之一,而面向对象最基础的东西就是类和对象的使用,而单一职责可以说是对类和对象的一种要求,也就是要求类应该有且仅有一个引起它变化的原因。

      开闭原则是指一个类,只有一个引起它变化的原因。有且只有一个职责。每一个职责都是变化的一个轴线,如果一个类有一个以上的职责,这些职责就耦合在了一起。这会导致脆弱的设计。当一个职责发生变化时,可能会影响其它的职责。另外,多个职责耦合在一起,会影响复用性。

 

单一职责原则由来

         谈到单一职责原则的由来不得不说面向对象,也不得不说需求是在不断变化,因为软件需求唯一的不变的真理就是软件需求一定会变化,因为需求变化,所以我们就要用到面向对象的设计思想,而面向对象的要求就是复用、能用最小的代价应对变化、不用改变现有代码就能满足扩展(其实这就上一篇博客中说的《开闭原则》)。在面向对象的要求下,许多人在这些问题上思考了很多,也花费了很大努力来实现这几点,所以单一职责原则就在这样的背景下诞生了。

 

单一职责原则的好处

      ① 单一职责原则提供了一个编写程序的标准,也就是让类的复杂性降低,实现什么职责都有清晰明确的定义

      ② 在可读性和可维护性上得到了提高,因为类的职责单一,对类的阅读,类之间的调用关系都是清晰明确的。

 

项目中分析单一职责原则

         在这里引用一个比较经典的例子,就是图形计算程序和图形绘制程序调用Area()方法和Draw()方法的例子。    

      例子出处《开篇-模式和原则》:

解读设计模式--单一职责原则

     

      图形计算程序只使用了正方形的Area()方法,永远没有使用Draw()方法,而它却和draw方法关联起来,这就违反了单一指责原则,如果将来有一天图形绘制程序导致draw发生变化,那就影响到了本来毫无关系的图形计算程序。

      所以我们应该将不同的职责分配给不同的类,让每个类的职责单一,隔离变化,如图:

 

解读设计模式--单一职责原则

常言道

      常言道:该你管的你管,不该你管的你别插手。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-03-09
  • 2021-10-20
  • 2022-01-06
猜你喜欢
  • 2021-05-08
  • 2021-06-09
  • 2021-05-26
  • 2021-05-15
  • 2021-12-13
  • 2022-01-23
  • 2021-07-10
相关资源
相似解决方案