zoukankan      html  css  js  c++  java
  • 设计模式系列之二:23种GoF设计模式的分类

    GoF设计模式一共有23个。一般可以按目的和作用范围来进行划分,具体划分方法如下:

    第一,这些模式按目的(即完成什么样任务)来划分为创建型、结构型和行为型这三种模式:

    创建型:用来创建对象。单例、原型、抽象工厂、建造者、工厂方法这五个都属于这一分类。这种类别起到了将对象的创建与其使用进行分离解耦。

    结构型:用来处理类或对象之间如何组合以构成更大的结构体。桥接、装饰、适配器、代理、外观、享元、组合这七个属于这一类。

    行为型:用来处理类或对象之间如何交互和分配职责。模板方法、解释器、策略、命令、职责链、状态、观察者、中介者、迭代器、访问者、备忘录这11个属于这一类。

    第二,按其是用到类上还是对象上来划分,可以分为类和对象两种模式。

    类模式:主要用来处理类与其子类之间继承关系,这种关系是编译时确定的,运行时是静态和不变的。工厂方法、模板方法、(类)适配器、解释器这四个属于这一种。

    对象模式:用于处理对象之间的组合或者聚合关系,运行时可以变化,是动态的。其他的19种都属于这一模式。具体见下图。

    将这两种分类方法作为纵横方向,可以将具体的模式分类列一个表如下。

     

    23种GoF设计模式分类表

        目的

    范围

    创建型/Creational

    结构型/Structural

    行为型/Behavioural

    类型/Class

    工厂方法/Factory Method

    适配器(类)/Adapter(class)

    解释器/Interpreter

    模板方法/Template method

    对象型/Object

    单例/Singleton

    原型/Prototype

    抽象工厂/Abstract Factory

    建造者/Builder

    桥接/Bridge

    装饰/Decorator

    代理/Proxy

    外观/Facade

    享元/Flyweight

    组合/Composite

    适配器(对象)/Adapter(object)

    职责链/Chain of Responsibility

    命令/Command

    观察者/Observer

    中介者/Mediator

    状态/State

    访问者/Visitor

    迭代器/Iterator

    备忘录Memento

    策略/Strategy

     

    注意:一般初学者,因为记起来比较难记,本人原来是按照取每种模式的第一个字的谐音构成一句话来记忆,后面带有中划线的斜体的是类模式,虽说有些不正经、但是效果明显。如果深入理解了,就会很自然地根据名字划分,不需要这么记忆。

    创建型:单元抽建 ——> 单例、原型、抽象工厂、建造者、工厂方法

    结构型:乔装(后)呆(在)外(面)像祖(爷) ——> 桥接、装饰、代理、外观、享元、组合、适配器(对象或者类)

    行为型:除过前面的都是行为型。或者如下:

                 知名观众装碟防被测(试带有)芥末 ——> 职责链、命令、观察者、中介者、状态、迭代器、访问者、备忘录、策略、解释器、模板方法。 

     
     
  • 相关阅读:
    能量最小化初探,graphcuts能量最小化调用
    【设计】B 端产品设计
    【产品分析】关于字节跳动的神话与现实
    【UI】数据表格设计
    【设计】交互文档结构
    【作品集】UX作品集
    【产品方法论】需求是怎么来的
    【ML】人脸识别
    【ML】DL的参数量计算
    【网站部署】flask
  • 原文地址:https://www.cnblogs.com/markkang/p/11823615.html
Copyright © 2011-2022 走看看