乐趣区

关于后端:设计模式0入门

摘要

  • 简述了设计模式是什么以及长处
  • 依照目标和作用范畴进行了划分
  • 介绍了 23 种设计模式

简介

目前软件工程的设计模式次要是 23 种,能够依据模式的目标和模式的作用范畴进行分类。设计模式的实质是面向对象设计准则的理论使用,是对类的封装性,继承性和多态性以及类之间的关联关系和组合关系的充沛了解。

长处

  • 思维能力,编程能力,设计能力
  • 设计标准化,代码编制工程化
  • 保障代码可反复用性,可读性,可靠性,灵活性,可维护性

分类

  • 目标划分

    • 创立型模式

      • 将对象的创立与应用拆散
      • 五种创立模式

        • 单例
        • 原型
        • 工厂办法
        • 形象工厂
        • 建造者
    • 结构型模式

      • 形容如何将类或对象以某种布局组成更大的构造
      • 七种结构型模式

        • 代理
        • 适配器
        • 桥接
        • 装璜
        • 外观
        • 享元
        • 组合
    • 行为型模式

      • 形容类或者对象之间相互协作共同完成单个对象无奈实现的工作,以及职责划分
      • 十一种行为型模式

        • 模板办法
        • 策略
        • 命令
        • 职责链
        • 状态
        • 观察者
        • 中介者
        • 迭代器
        • 访问者
        • 备忘录
        • 解释器
  • 作用范畴划分

    • 类模式

      • 解决类和子类的关系,这些关系通过继承来建设,是动态的,编译时刻就稳定下来了
      • 四品种模式

        • (类) 适配器
        • 模板办法
        • 解释器
        • 工厂办法
    • 对象模式

      • 用于解决对象之间的关系,这些关系能够通过组合或者聚合来实现,在运行时刻是能够变动的具备动态性
      • 十九种对象模式

具体介绍

  1. 单例(Singleton)模式:某个类只能生成一个实例,该类提供了一个全局拜访点供内部获取该实例,其拓展是无限多例模式。
  2. 原型(Prototype)模式:将一个对象作为原型,通过对其进行复制而克隆出多个和原型相似的新实例。
  3. 工厂办法(Factory Method)模式:定义一个用于创立产品的接口,由子类决定生产什么产品。
  4. 形象工厂(AbstractFactory)模式:提供一个创立产品族的接口,其每个子类能够生产一系列相干的产品。
  5. 建造者(Builder)模式:将一个简单对象分解成多个绝对简略的局部,而后依据不同须要别离创立它们,最初构建成该简单对象。
  6. 代理(Proxy)模式:为某对象提供一种代理以管制对该对象的拜访。即客户端通过代理间接地拜访该对象,从而限度、加强或批改该对象的一些个性。
  7. 适配器(Adapter)模式:将一个类的接口转换成客户心愿的另外一个接口,使得本来因为接口不兼容而不能一起工作的那些类能一起工作。
  8. 桥接(Bridge)模式:将形象与实现拆散,使它们能够独立变动。它是用组合关系代替继承关系来实现,从而升高了形象和实现这两个可变维度的耦合度。
  9. 装璜(Decorator)模式:动静的给对象减少一些职责,即减少其额定的性能。
  10. 外观(Facade)模式:为多个简单的子系统提供一个统一的接口,使这些子系统更加容易被拜访。
  11. 享元(Flyweight)模式:使用共享技术来无效地反对大量细粒度对象的复用。
  12. 组合(Composite)模式:将对象组合成树状层次结构,使用户对单个对象和组合对象具备统一的拜访性。
  13. 模板办法(TemplateMethod)模式:定义一个操作中的算法骨架,而将算法的一些步骤提早到子类中,使得子类能够不扭转该算法构造的状况下重定义该算法的某些特定步骤。
  14. 策略(Strategy)模式:定义了一系列算法,并将每个算法封装起来,使它们能够互相替换,且算法的扭转不会影响应用算法的客户。
  15. 命令(Command)模式:将一个申请封装为一个对象,使发出请求的责任和执行申请的责任宰割开。
  16. 职责链(Chain of Responsibility)模式:把申请从链中的一个对象传到下一个对象,直到申请被响应为止。通过这种形式去除对象之间的耦合。
  17. 状态(State)模式:容许一个对象在其外部状态产生扭转时扭转其行为能力。
  18. 观察者(Observer)模式:多个对象间存在一对多关系,当一个对象产生扭转时,把这种扭转告诉给其余多个对象,从而影响其余对象的行为。
  19. 中介者(Mediator)模式:定义一个中介对象来简化原有对象之间的交互关系,升高零碎中对象间的耦合度,使原有对象之间不用相互了解。
  20. 迭代器(Iterator)模式:提供一种办法来程序拜访聚合对象中的一系列数据,而不裸露聚合对象的外部示意。
  21. 访问者(Visitor)模式:在不扭转汇合元素的前提下,为一个汇合中的每个元素提供多种拜访形式,即每个元素有多个访问者对象拜访。
  22. 备忘录(Memento)模式:在不毁坏封装性的前提下,获取并保留一个对象的外部状态,以便当前复原它。
  23. 解释器(Interpreter)模式:提供如何定义语言的文法,以及对语言句子的解释办法,即解释器。

参考

[1].GoF 的 23 种设计模式的分类和性能

[2]. 软件设计模式概述

本文作者: Both Savage

本文链接: https://bothsavage.github.io/…

版权申明: 本博客所有文章除特地申明外,均采纳 BY-NC-SA 许可协定。转载请注明出处!

退出移动版