一、设计模式的要素
什么是设计模式?
设计模式(design pattern)是对面向对象设计中反复出现的问题的解决方案。其并非是一种技术,而是在项目迭代的过程中,为了实现一些功能,设计了一些解决方案,将这些经验进行总结出来的一个模式体系,这个体系是总结的经验。
为什么要使用设计模式?
我的理解是:
- 让代码更容易理解,更加清晰
- 使程序更加健壮,更好的高内聚,低耦合,方便维护
- 更好的复用代码,保证代码的可靠性
设计模式一般有以下4个基本要素
- 模式名称:用一两个词来描述模式的问题、解决方案和效果
- 问题:描述了应该在何时使用模式
- 解决方案:描述了设计的组成成分、他们之间的相互关系及各自的职责和协作方式
- 效果:描述了模式应用的效果及使用模式应权衡的问题
二、设计模式的分类
设计模式共23 种,分为三大类,分别是 创建型模式、结构型模式、行为型模式
创建型模式:创建对象的过程
- 工厂模式(Factory Method)
- 抽象工厂模式(Abstract Factory)
- 建造者模式(Builder)
- 单例模式(Singleton)
- 原型模式(Prototype)
结构型模式:如何组合类和对象以获得更大的结构
- 适配器(Adapter)
- 桥接(Bridge)
- 组合(Composite)
- 装饰(Decorator)
- 外观(Facade)
- 享元(Flyweight)
- 代理(Proxy)
行为型模式:涉及算法和对象间职责的分配,不仅描述对象或类的模式,也描述他们之间的通信模式
- 责任链模式(Chain of Responsibility)
- 命令模式(Command)
- 解释器(Interpreter)
- 迭代器(Iterator)
- 中介者模式(Mediator)
- 备忘录模式(Memento)
- 观察者模式(Observer)
- 状态(State)
- 策略模式(Strategy)
- 模板方法模式(Template Method)
- 访问者(Visitor)