前言
设计模式是为了可重用代码,增加代码的可读性,使代码更可靠。
设计模式的最终目的:高内聚、低耦合。
设计模式七大原则
- 开放封闭原则
对扩展开放,对修改关闭。
类的改动是通过增加代码进行,而不是修改源代码。 - 单一原则
类的职责要单一,对外只提供一种功能。而引起类的变化的原因都应该只有一个。 - 里氏替换原则
任何抽象类出现的地方,都可以用其实现类替代。实际就是虚拟机制,语言级别实现面向对象功能。 - 依赖倒置原则
依赖抽象(接口),而不是依赖具体的实现(类),也就是要依赖接口编程。 - 接口隔离原则
不要强迫客户依赖他们不需要的接口。一个接口方法应该只提供一种对外功能。不应该把所有的操作封装到一个接口方法中去。 - 聚合复用原则
如果使用继承,会导致父类的任何变化会影响子类的行为。
如果使用组合,可以降低这种依赖关系。 - 迪米特法则(最少知道原则)
一个对象对其他对象要尽可能少的了解,这样才能降低对象的耦合行,提高对象的可维护性。如各个模块相互调用,需要提供统一的接口,其他模块不需要了解另一个模块的实现细节,这样当一个模块内部发生改变,不会影响其他模块的使用。
设计模式的分类
设计模式可归纳为3大类,共23种:
创建型模式:通常和对象的创建有关,涉及到对象实例化方式 。
- 工厂方法模式
- 抽象工厂模式
- 建造者模式
- 单例模式
- 原型模式
结构型模式: 如何组合类和对象,获得更大的结构。
- 代理模式
- 装饰者模式
- 适配器模式
- 外观模式
- 桥接模式
- 组合模式
- 享原模式
行为型模式:用来对类和对象怎样交互和怎样分配职责进行描述。
- 模板方法模式
- 命令模式
- 策略模式
- 责任链模式
- 中介者模式
- 观察者模式
- 备忘录模式
- 访问者模式
- 状态模式
- 解释器模式
- 迭代器模式