目 录CONTENT

文章目录

设计模式

半糖
2024-08-15 / 0 评论 / 0 点赞 / 118 阅读 / 7827 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2024-09-12,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

前言

设计模式的由来和发展可以追溯到20世纪80年代,其灵感来源于建筑学领域。以下是设计模式由来的几个关键点。

  1. 建筑学的影响
    设计模式的概念最初受到建筑学的启发。哈佛大学的建筑学博士克里斯托弗·亚历山大(Christopher Alexander)被认为是“模式”的先驱者之一。

    亚历山大和他的团队通过多年的研究,总结出了一系列建筑设计中的模式,这些模式描述了如何解决常见的设计问题。

    这些模式通常包括三个部分:情境(Context)、问题(Problem)和解决方案(Solution)。

  2. 软件工程中的应用

    在20世纪80年代,软件开发人员开始意识到,他们遇到的一些问题是重复出现的,从建筑学中借鉴了许多概念和方法,并且可以通过类似的方法来解决。

  3. GOF四人组
    1994年,四位软件工程师Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides出版了一本名为《设计模式:可复用面向对象软件的基础》(Design Patterns: Elements of Reusable Object-Oriented Software)的书。这本书系统地介绍了23种设计模式,并且定义了设计模式的概念,使得这些模式成为软件开发中的标准术语。
    本文正式借鉴此书,结合java语言对这23种设计模式进行系统的阐述。tips:本文中的“原文”特指此书中的原文。

什么是设计模式

引用原文描述:

Christopher Alexander说过:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。
这样,你就能一次又一次地使用该方案而不必做重复劳动”尽管Alexander所指的是城市和建筑模式,但他的思想也同样
适用于面向对象设计模式,只是在面向对象的解决方案里,我们用对象和接口代替了墙壁和门窗。两类模式的核心都在
于提供了相关问题的解决方案。

概括起来,设计模式就是对“遇到了什么问题?采取什么方案?达到怎样的效果?”的总结。

设计模式的四要素

  1. 模式名称:一个助记名,它用一两个词来描述模式的问题、解决方案和效果。

  2. 问题:描述了应该在何时使用模式。它解释了某种设计问题和问题存在的前因后果。

  3. 解决方案:描述了设计的组成成分,它们之间的相互关系及各自的职责和协作方式。

  4. 效果:描述了模式应用的效果及使用模式应权衡的问题。

设计模式确定了所包含的类和实例,它们的角色、协作方式以及职责分配。每一个设计模式都集中于一个特定的面向对象设计问题或设计要点,描述了什么时候使用它,在另一些设计约束条件下是否还能使用,以及使用的效果和如何取舍。

23种设计模式及分类

由于本文较长,所以干货内容放在前面,每个模式单独一篇文章进行讲解(点击模式名称即可查看),有关设计模式的选择、组合和使用在本文的后面目录进行讲解。

创建型

创建型设计模式关注的是对象的创建机制,它们提供了一种创建对象的方式,使得系统的扩展更加灵活,同时隐藏了创建对象的细节。

抽象工厂模式(ABSTRACT FACTORY)

生成器模式(BUILDER)

工厂方法模式(FACTORY METHOD)

原型模式(PROTOTYPE)

单例模式(SINGLETON)

结构型

适配器模式(ADAPTER)

桥接模式(BRIDGE)

组合模式(COMPOSITE)

装饰模式(DECORATOR)

外观模式(FACADE)

享元模式(FLYWEIGHT)

代理模式(PROXY)

行为型

职责链模式(CHAIN OF RESPONSIBILITY)

命令模式(COMMAND)

解释器模式(INTERPRETER)

迭代器模式(ITERATOR)

中介者模式(MEDIATOR)

备忘录模式(MEMENTO)

观察者模式(OBSERVER)

状态模式(STATE)

策略模式(STRATEGY)

模板方法模式(TEMPLATE METHOD)

访问者模式(VISITOR)

设计模式之间的关系

概括

组合使用

TODO。。。

设计模式六大原则

http://bantang.xyz/archives/she-ji-mo-shi-xiang-guan-de-yuan-ze-he-fa-ze

相关概念

产品族

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区