设计模式的分类

设计模式根据范围(模式主要用于处理类之间关系还是处理对象之间的关系)可以分为类模式和对象模式两种:

  • 类模式处理类和子类之间的关系,这些关系通过继承建立,在编译时刻就被确定下来,属于静态的。
  • 对象模式处理对象间的关系,这些关系在运行时时刻变化,更具动态性。

根据目的(模式用来做什么的)可分为创建型(Creational),结构型(Structural)和行为型(Behavioral)三种:

创建型模式

定义:创建对象的模式,抽象了实例化的过程。它帮助一个系统独立于如何创建、组合和表示他的那些对象。关注的是对象的创建,创建型模式将创建对象的过程进行了抽象,也可以理解为将创建对象的过程进行封装,作为客户程序仅仅需要去使用对象,而不在关系创建对象过程中的逻辑。

分类:共五种、分别是:

  • 工厂方法模式(Factory Method)
  • 抽象工厂模式(Abstract Factory)
  • 创建者模式(Builder)
  • 原型模式(Prototype)
  • 单例模式(Singleton)

结构型模式

定义:为解决怎样组装现有的类,设计它们的交互方式,从而达到实现一定的功能目的。其包容了对很多问题的解决。例如:拓展性(外观、组成、代理、装饰)、封装(适配器、桥接)。

分类:共七种,分别是:

  • 外观模式/门面模式(Facade门面模式)
  • 适配器模式(Adapter)
  • 代理模式(Proxy)
  • 装饰模式(Decorator)
  • 桥梁模式/桥接模式(Bridge)
  • 组合模式(Composite)
  • 享元模式(Flyweight)

行为型模式

定义:涉及到算法和对象间职责的分配,行为模式描述了对象和类的模式,以及它们之间的通信模式,行为模式刻划了在程序运行时难以跟踪的复杂的控制流可分为行为类模式和行为对象模式。行为类模式使用继承机制在类间分派行为。行为对象模式使用对象聚合来分配行为。

分类:共十一种,分别是:

  • 模板方法模式(Template Method)
  • 观察者模式(Observer)
  • 状态模式(State)
  • 策略模式(Strategy)
  • 职责链模式(Chain of Responsibility)
  • 命令模式(Command)
  • 访问者模式(Visitor)
  • 调停者模式(Mediator)
  • 备忘录模式(Memento)
  • 迭代器模式(Iterator)
  • 解释器模式(Interpreter)

三者的联系:

1、创建型模式主要用于创建对象,为其他两种模式提供了环境。

2、结构型模式侧重于接口的使用,它做的一切工作都是对象或类之间的交互,提供一个门。

3、行为型模式侧重于行为,主要用于描述类或对象怎样交互和怎样分配职责。

创建型模式提供生存环境,结构型模式提供生存理由,行为型模式提供如何生存。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页