设计模式就是在变与不变中,找到一种管理变的合理方式
按功能划分
组件协作问题
不同的类(不同的基类、父子类)之间,有协作完成某一个功能的关系,来使用合适的策略解决他们之间的协作问题。
- 模板模式:基类易变功能放子类中
- 策略模式:if-else问题
- 观察者模式:消息订阅和通知
单一职责问题
一个类的继承体系负责一种功能的实现,不同的类体系之间采用基类指针的形式进行动态组合来完成更复杂的功能。
- 装饰器模式
- 桥模式
对象创建问题
绕开new,来避免对象创建(new)过程中所导致的紧耦合(依赖具体类),从而支持对象创建的稳定。为接口抽象之后的第一步工作。
- 工厂模式(简单工厂,工厂,抽象工厂)
- 原型模式(prototype mode)
- 构建器