1.设计模式简介
一、设计模式的目的
1. 代码重用性
2. 可读性
3. 可扩展性
4. 可靠性
5. 高内聚,低耦合
二、设计模式七大原则
1. 单一职责原则
1)降低类的复杂度,一个类只负责一项职责
2)提高类的可读性,可维护性
3)降低变更引起的风险
4)通常情况下,应遵守单一职责原则,只有逻辑足够简单,才可以在代码级违反单一职责原则;只有类中的方法数量足够少,可在方法级别保持单一职责原则
2. 接口隔离原则
1)客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小接口上
2)类 A 通过接口 interface1 依赖类 B,类 C 通过接口 interface1 依赖类 D,如果接口 interface1 对于类 A 和类 C 来说不是最小接口,那么类 B 和类 D 必须实现他们不需要实现的方法
3)按隔离原则应处理为:将接口 interface1 拆分为独立的几个接口,类 A 和类 C 分别与他们需要的接口建立依赖关系;也就是采用接口隔离原则
3. 依赖倒置原则
1)高层模块不应该依赖低层模块,二者都应该依赖其抽象
2)抽象不应该依赖细节,细节更应该依赖抽象
3)依赖倒置的中心思想是面向接口编程
4)依赖倒置原则是基于这样的设计理念:相对于细节的多变性,抽象的东西要稳定的多;以抽象为基础搭建的架构比以细节为基础的架构要稳定的多;在 Java 中,抽象指的是接口或抽象类,细节就是具体的实现类
5)使用接口或抽象类的目的是制定好规范,而不涉及任何具体的操作,把展现细节的任务交给他们的实现类去完成
4. 理氏替换原则
1)所有引用基类的地方必须能透明的使用其子类的对象
2)在子类中尽量不要重写父类的方法
3)继承实际上让两个类耦合性增强了,应尽量通过聚合,组合,依赖来解决问题
5. 开闭原则
1)一个软件实体如类,模块和函数应该对扩展开放,对修改关闭;用抽象构建框架,用实现扩展细节
2)当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是修改已有的代码
6. 迪米特原则
1)一个对象应对其它对象保持最小的了解
2)类与类之间的关系越密切,耦合度越大
3)迪米特原则即最小知道原则,一个类对自己依赖的类知道的越少越好;对于被依赖的类不管多复杂,都尽量将逻辑封装在类的内部;对外除了提供 public 方法,不对外泄露任何信息
7. 合成复用原则
尽量使用合成/聚合的方式,而不是继承
三、设计原则核心思想
1)找出应用中可能需要变化的地方,把它们独立处理,不要和不需要变化的代码混在一起
2)针对接口编程,而不是针对实现编程
3)尽量降低交互对象之间的耦合度