设计模式常用的的七大原则 (design pattern)
- 单一职责原则
- 依赖倒转原则
- 接口隔离原则
- 里式替换原则
- 开闭原则
- 迪米特法则
- 合成复用原则
使用设计模式的目的
- 代码重用性
- 可读性
- 可扩展性
- 可靠性
- 使程序呈现高内聚,低耦合的特性
单一职责原则
首先一个类只负责一项职责,如类A负责两个不同职责,职责1,职责2,如果职责1出现错误的情况下将影响职责2,所以将类A分开成A1,A2
如下,虽然没有分开写3个类(因为存在开销太大),但是在方法级别上来说也是遵守单一职责
单一职责原则注意事项及细节
- 降低类的复杂度,一个类只负责一项职责
- 提高类的可读性,可维护性
- 降低需求变更所引起的风险(只需要改对应类中的方法,不影响其他类中的方法)
- 通常情况下,我们应当遵循单一职责原则,只有逻辑足够简单才可以违反单一职责原则,只有类中的方法数量足够少,才可以在方法级别中保持单一职责的原则
接口隔离原则
介绍描述
客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上(简单来说就是A类依赖B类,通过接口发生关系,对于不需要的方法拆分小接口)
需求描述
接口拆分
接口实现
A类通过接口去使用B类
C类通过接口去使用D类
依赖倒转原则
介绍描述
- 高层模块不应该依赖低层模块,二者都应该依赖其抽象
- 抽象不应该依赖细节,细节应该依赖抽象
- 依赖倒转的中心思想是面向接口编程
- 使用接口或抽象类的目的是制定好规范,不涉及任何具体的操作,把展现细节的任务交给他们的实现类去完成
- 在java中,抽象指的是接口或抽象类,细节就是具体的实现类
里式替换原则
介绍描述
- 所有引用的基类的地方必须能透明地使用其子类的对象
- 子类中尽量不要重写父类的方法
- 继承让两个类耦合性增强了,在适当情况下可以通过聚合,组合,依赖解决
开闭原则
介绍描述
- 对扩展开放(对提供方),对修改关闭(使用方),使用抽象构建框架,用实现扩展细节
- 当软件需要变换时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化
- 设计模式的目的就是遵循开闭原则
迪米特法则
介绍描述
降低类之间的耦合性,增加复用性
合成复用
介绍描述
尽量使用合成/聚合的方式,而不是使用继承
总结
只能说尽量