设计模式概念
设计模式(Design Pattern)是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误分类编目的优秀代码设计经验的总结。所以使用设计模式目的为了能够重用代码、使代码更易理解、更具有可靠性。
设计模式要素
- 模式名称
- 问题
- 初始环境
- 解决方案
- 效果
- 举例
- 末态环境
- 推理
- 其他有关模式
- 已知的应用
设计模式分类
常用的设计模式可以概括为23种,按照特点可以分为三大类型
- 创建型
- 结构型
- 行为型
创建型
创建型模式主要用于创建对象,抽象实例化的过程,帮助一个系统独立于其关联对象的创建、组合及表示方式。
创建型模式都有以下两个主要功能
- 1.将系统所使用的具体类的信息封装起来;
- 2.隐藏类实例的创建和组织方式。外界对于这些对象只知道他们共同的忌口,无需关注具体的实现细节。
所以,创建型模型主要关注点是:3w–when,who,what
什么时候由谁创建了什么。
常见的创建型设计模式:
- 单例模式(Singleton)
- 工厂方法模式(Factory)
- 抽象工厂模式(Abstract)
- 建造者模式(Builder)
- 原型模式(Prototype)
结构型
结构型模式主要关注类和对象的结构,它采用继承机制来组合接口或实现,或通过组合一些对象实现新功能。虽然结构型模式在某些方面具有很多的相似性,但侧重点各有不同。
常见的结构型设计模式:
- 代理模式(Proxy)
- 装饰模式(Decorator)
- 适配器模式(Adapter)
- 组合模式(Composite)
- 桥梁模式(Bridge)
- 外观模式(Facade)
- 享元模式(Flyweight)
行为型
行为型设计模式关注对象的行为,主要用来解决对象自建的联系问题。
常见的行为型设计模式:
- 模板方法模式(Template Method)
- 命令模式(Command)
- 责任链模式(Chain of Responsibility)
- 策略模式(Strategy)
- 迭代器模式(Iterator)
- 中介者模式(Mediator)
- 观察者模式(Observer)
- 备忘录模式(Memento)
- 访问者模式(Visitor)
- 状态模式(State)
- 解释器模式(Interpreter)