设计模式三大分类
GOF23种设计模式共分为三种类型:
- 创建型模式:简单工厂(不是GOF23种之一)、工厂方法、抽象工厂、建造者、单例、原型
- 结构型模式:外观、装饰者、适配器、享元、组合、桥接、代理
- 行为型模式:模板、迭代器、策略、解释器、观察者、备忘录、命令、中介者、责任链、访问者、状态
一、创建型模式
创建型模式,就是创建对象的模式,抽象了实例化的过程。使一个系统可以不用关心这些对象是如何创建、组合、呈现的。
创建型模式关心的是对象的创建,将创建对象的过程进行了抽象,也可以理解为将创建对象的过程进行了封装,作为客户程序仅仅需要去使用对象,不再关心创建对象过程中的逻辑。
社会化的分工越来越细,自然在软件设计方面也是如此,因此对象的创建和对象的使用分开也就成为了必然趋势。因为对象的创建会消耗掉系统的很多资源,所以单独对对象的创建进行研究,从而能够高效地创建对象就是创建型模式要探讨的问题。
二、结构型模式
结构型模式是为解决怎样组装现有的类,通过对多个类和对象进行组合得到复杂结构的类,一般使用继承或者成员变量引用的方式来实现。
在解决了对象的创建问题之后,对象的组成以及对象之间的依赖关系就成了开发人员关注的焦点,因为如何设计对象的结构、继承和依赖关系会影响到后续程序的维护性、代码的健壮性、耦合性等。对象结构的设计很容易体现出设计人员水平的高低
三、行为型模式
行为型模式涉及到算法和对象间职责的分配,行为模式描述了对象和类的模式,以及它们之间的通信模式,行为模式刻划了在程序运行时难以跟踪的复杂的控制流可分为行为类模式和行为对象模式。1. 行为类模式使用继承机制在类间分派行为。2. 行为对象模式使用对象聚合来分配行为。一些行为对象模式描述了一组对等的对象怎样相互协作以完成其中任何一个对象都无法单独完成的任务。
在对象的结构和对象的创建问题都解决了之后,就剩下对象的行为问题了,如果对象的行为设计的好,那么对象的行为就会更清晰,它们之间的协作效率就会提高
四、三者之间的区别和联系
创建型模式提供生存环境,结构型模式提供生存理由,行为型模式提供如何生存。
- 创建型模式为其他两种模式使用提供了环境。
- 结构型模式侧重于接口的使用,它做的一切工作都是对象或是类之间的交互,提供一个门。
- 行为型模式顾名思义,侧重于具体行为,所以概念中才会出现职责分配和算法通信等内容。
参考
- 本文作者: xczll
- 本文链接: https://xczllgit.github.io/2020/03/06/designPattern/2020-03-06-designPatternCategories/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!