设计原则与编程技巧

Posted by franki on November 12, 2018

单一职责原则
单一职责原则(SRP)的职责被定义为“引起变化的原因”。如果我们有两个动机去改写一 个方法,那么这个方法就具有两个职责。每个职责都是变化的一个轴线,如果一个方法承担了过 多的职责,那么在需求的变迁过程中,需要改写这个方法的可能性就越大

因此,SRP 原则体现为:一个对象(方法)只做一件事情。

以下设计模式都符合此规则:
1 代理模式
2 迭代器模式
3 代理模式
4 装饰者模式

SRP 原则的优点是降低了单个类或者对象的复杂度,按照职责把对象分解成更小的粒度, 这有助于代码的复用,也有利于进行单元测试。当一个职责需要变更的时候,不会影响到其他的职责。

但 SRP 原则也有一些缺点,最明显的是会增加编写代码的复杂度。当我们按照职责把对象 分解成更小的粒度之后,实际上也增大了这些对象之间相互联系的难度。