- 单一职责原则(SRP):一个对象(方法)只做一件事。
何时应该分离职责
SRP原则是所有原则中最简单也是最难正确运用的原则之一。
要明确的是,并不是所有的职责都应该一一分离。
一方面,如果随着需求的变化,有两个职责总是同时变化,那就不必分离它们。比如在ajax请求时候,创建xhr对象和发送xhr请求几乎总是在一起的,那么创建xhr对象的职责和发送xhr请求的职责就没有必要分开。
另一方面,职责的变化轴线仅当它们确定会发生变化时才有意义,即使两个职责已经被耦合在一起,但它们还没有发生改变的征兆,那么也许没有必要主动分离它们,在代码需要重构时再进行分离也不迟。
SRP原则的优缺点
SRP原则的优点是降低了单个类或者对象的复杂度,按照职责把对象分解成更小的粒度,这有助于代码的复用,也有利于进行单元测试。当一个职责需要变更的时候,不会影响到其他的职责。
SRP的缺点,最明显的是会增加编写代码的复杂度。当我们按照职责把对象分解成更小的粒度之后,实际上也增大了这些对象之间相互联系的难度。
- 最少知识原则(LKP):在多个对象之间引入第三者对象,来承担这些对象之间的通讯作用。
应用:中介者模式,外观模式。
- 开放-封闭原则(OCP):软件实体(类、模块、函数)等应该是可以扩展的,但是不可修改。
即当需要改变一个程序的功能或者给这个程序增加新功能的时候,可以使用增加代码的方式,但是不允许改动程序的源代码。
网友评论