美文网首页
设计模式常见类目

设计模式常见类目

作者: Tenloy | 来源:发表于2018-12-23 21:24 被阅读119次

    前言

    根据设计模式之间的共性(功能、针对的角色等角度),可以把设计模式分为几类,常见的有两种分类:
    根据功能分类:创建型、行为型、结构型
    根据模式所处理的类型:类模式、对象模式

    分类1

    # 创建型:(焦点:对象实例化)

    此类模式涉及到将对象实例化,都提供一个方法,将客户从所需要实例化的对象中解耦。
    Factory Method、Abstract Factory、Singleton、Builder(生成器/建造者)、Prototype(原型)

    # 行为型: (焦点:一个模式中,对象之间的功能、职责和互联)

    只要是行为型模式,都涉及到类和对象如何交互及分配职责
    Strategy、Observer、Command、Template Method、Iterator、State、Chain of Responsibility(责任链)、Interpreter(解释器)、Mediator(中介者)、Memento(备忘录)、Visitor(访问者)

    # 结构型:(焦点:如何动态地组合对象以获取新的功能)

    说法1:此类模式,可以把类或对象组合到更大的结构中
    说法2:此类模式,用来描述类和对象如何被组合以建立新的结构或功能
    Decorator、Adapter、Facade、Composite、Proxy、Bridge、Flyweight(享元/蝇量)

    注意:

    1. 装饰者模式为什么归类为结构类目中?
      装饰者模式允许通过“将某对象包装进另一个对象的方式”,来组合对象以提供新的功能。所以焦点在于如何动态地组合对象以获取功能,而不是行为型模式的目的 — 对象之间的功能和互联。

    分类2:

    还有一种分类方式:模式所处理的是类还是对象

    # 类模式

    类模式描述类之间的关系如何通过继承定义。类模式的关系是在编译时建立的
    Template Method、Factory Method、Adapter、Interpreter

    # 对象模式

    对象模式描述对象之间的关系,而且主要是利用组合定义。对象模式的关系通常在运行时建立,而且更加动态、更加弹性
    Singleton、Abstract Factory、Builder、Prototype、Iterator、Command、Observer、State、Strategy、Visitor、Mediator、Memento、Chain of Responsibility、Decorator、Proxy、Composite、Facade、Bridge、Flyweight

    分类有利于理解、思考。有利于比较、选型。
    怎么分类并不重要,重要的是了解这些模式和它们之间的关系,只要类目有帮助,我们就用,反之就不用。

    相关文章

      网友评论

          本文标题:设计模式常见类目

          本文链接:https://www.haomeiwen.com/subject/gfkqkqtx.html