不常用的:里式置换原则、依赖倒置原则、接口独立原则。
一、单一职责 (SRP)
单一职责原则的职责
被定义为“引起变化的原因”。
原则体现为:一个对象(方法)只做一件事情。
应用举例
代理模式、迭代器模式、单例模式、装饰者模式
何时应该分离职责
- 如果两个职责总是同时变化,那就不必分离。
- 在方便性和稳定性之间要有一些取舍。
优缺点
优点:
降低了单个类或者对象的复杂度,有利于代码复用。
缺点:
- 增加编写代码的复杂度
- 颗粒之间相互联系的难度
二、最少知识原则 (LKP)
最少知识原则:一个软件实体应当尽可能少地与其他实体发生相互作用。
原则体现为:尽量减少对象之间的联系。
应用举例
- 中介者模式、外观模式
- 封装
优缺点
优点:减少了对象之间的依赖
缺点: 可能增加一些庞大到难以维护的第三者对象。
三、开放-封闭原则 (OCP)
定义:软件实体应该是可以扩展的,但是不可修改。
找出变化的地方,把变化封装起来,可以把系统中稳定不变的部分和容易变化的部分隔离开。
应用举例
装饰者模式、发布-订阅模式、模板方法模式、策略模式、代理模式、职责链模式
相对性
- 找出最容易发生变化的地方,然后构造抽象来封闭这些变化。
- 在不可避免发生修改的时候,尽量修改那些相对容易修改的地方。
网友评论