设计模式 #
简介 #
什么是设计模式?
“软件设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码、让代码更容易被他人理解并且保证代码可靠性。”
一句大白话可以总结:“在一定环境下,用固定套路解决问题。”
分类 #
常用的设计模式共有23种,其中包括:
- 创建型(Creational)模式:如何创建对象;
- 单例模式
- 简单工厂模式
- 工厂方法模式
- 抽象工厂模式
- 结构型(Structural )模式:如何实现类或对象的组合;
- 代理模式
- 装饰模式
- 适配器模式
- 外观模式
- 行为型(Behavioral)模式:类或对象怎样交互以及怎样分配职责。
- 模版方法模式
- 命令模式
- 外观模式
- 观察者模式
原则 #
| 名称 | 定义 |
|---|---|
| 单一职责原则 | 类的职责单一,对外只提供一种功能,而引起类变化的原因都应该只有一个。 |
| 开闭原则 | 类的改动是通过增加代码进行的,而不是修改源代码。 |
| 里氏代换原则 | 任何抽象类(interface接口)出现的地方都可以用他的实现类进行替换,实际就是虚拟机制,语言级别实现面向对象功能。 |
| 依赖倒转原则 | 依赖于抽象(接口),不要依赖具体的实现(类),也就是针对接口编程。 |
| 接口隔离原则 | 不应该强迫用户的程序依赖他们不需要的接口方法。一个接口应该只提供一种对外功能,不应该把所有操作都封装到一个接口中去。 |
| 合成复用原则 | 如果使用继承,会导致父类的任何变换都可能影响到子类的行为。如果使用对象组合,就降低了这种依赖关系。对于继承和组合,优先使用组合。 |
| 迪米特法则 | 一个对象应当对其他对象尽可能少的了解,从而降低各个对象之间的耦合,提高系统的可维护性(黑盒原理) |