美文网首页
从招式与内功谈起——设计模式概述(二)

从招式与内功谈起——设计模式概述(二)

作者: 二斤寂寞 | 来源:发表于2020-10-21 20:57 被阅读0次

1.2 设计模式是什么

俗话说:站在别人的肩膀上,我们会看得更远。设计模式的出现可以让我们站在前人的肩膀上,通过一些成熟的设计方案来指导新项目的开发和设计,以便于我们开发出具有更好的灵活性和可扩展性,也更易于复用的软件系统。

设计模式的一般定义如下:

设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码、让代码更容易被他人理解并且保证代码可靠性。

狭义的设计模式是指GoF在《设计模式:可复用面向对象软件的基础》一书中所介绍的23种经典设计模式,不过设计模式并不仅仅只有这23种,随着软件开发技术的发展,越来越多的新模式不断诞生并得以应用。

设计模式一般包含模式名称、问题、目的、解决方案、效果等组成要素,其中关键要素是模式名称、问题、解决方案和效果。模式名称(Pattern Name)通过一两个词来描述模式的问题、解决方案和效果,以便更好地理解模式并方便开发人员之间的交流,绝大多数模式都是根据其功能或模式结构来命名的(GoF设计模式中没有一个模式用人名命名,[图片上传失败...(image-89b56b-1603283943622)]

);问题(Problem)描述了应该在何时使用模式,它包含了设计中存在的问题以及问题存在的原因;解决方案(Solution)描述了一个设计模式的组成成分,以及这些组成成分之间的相互关系,各自的职责和协作方式,通常解决方案通过UML类图和核心代码来进行描述;效果(Consequences)描述了模式的优缺点以及在使用模式时应权衡的问题。

虽然GoF设计模式只有23个,但是它们各具特色,每个模式都为某一个可重复的设计问题提供了一套解决方案。根据它们的用途,设计模式可分为创建型(Creational),结构型(Structural)和行为型(Behavioral)三种。
其中 :
创建型模式主要用于描述如何创建对象
结构型模式主要用于描述如何实现类或对象的组合
行为型模式主要用于描述类或对象怎样交互以及怎样分配职责

在GoF 23种设计模式中包含5种创建型设计模式、7种结构型设计模式和11种行为型设计模式。此外,根据某个模式主要是用于处理类之间的关系还是对象之间的关系,设计模式还可以分为类模式和对象模式。我们经常将两种分类方式结合使用,如单例模式是对象创建型模式,模板方法模式是类行为型模式。

值得一提的是,有一个设计模式虽然不属于GoF 23种设计模式,但一般在介绍设计模式时都会对它进行说明,它就是简单工厂模式,也许是太“简单”了,GoF并没有把它写到那本经典著作中,不过现在大部分的设计模式书籍都会对它进行专门的介绍。

表1列出将要介绍的24种设计模式,其中模式的学习难度是我个人在多年模式使用和推广过程中的经验总结,仅作参考,模式的使用频率来自著名的模式推广和教育网站——http://www.dofactory.net

类型 模式名称 学习难度 使用频率
创建型模式
Creational Pattern
单例模式
Singleton Pattern
★☆☆☆☆ ★★★★☆
简单工厂模式
Simple Factory Pattern
★★☆☆☆ ★★★☆☆
工厂方法模式
Factory Method Pattern
★★☆☆☆ ★★★★★
抽象工厂模式
Abstract Factory Pattern
★★★★☆ ★★★★★
原型模式
Prototype Pattern
★★★☆☆ ★★★☆☆
建造者模式
Builder Pattern
★★★★☆ ★★☆☆☆
结构型模式
Structural Pattern
适配器模式
Adapter Pattern
★★☆☆☆ ★★★★☆
桥接模式
Bridge Pattern
★★★☆☆ ★★★☆☆
组合模式
Composite Pattern
★★★☆☆ ★★★★☆
装饰模式
Decorator Pattern
★★★☆☆ ★★★☆☆
外观模式
Façade Pattern
★☆☆☆☆ ★★★★★
享元模式
Flyweight Pattern
★★★★☆ ★☆☆☆☆
代理模式
Proxy Pattern
★★★☆☆ ★★★★☆
行为型模式
Behavioral Pattern
职责链模式
Chain of Responsibility Pattern
★★★☆☆ ★★☆☆☆
命令模式
Command Pattern
★★★☆☆ ★★★★☆
解释器模式
Interpreter Pattern
★★★★★ ★☆☆☆☆
迭代器模式
Iterator Pattern
★★★☆☆ ★★★★★
中介者模式
Mediator Pattern
★★★☆☆ ★★☆☆☆
备忘录模式
Memento Pattern
★★☆☆☆ ★★☆☆☆
观察者模式
Observer Pattern
★★★☆☆ ★★★★★
状态模式
State Pattern
★★★☆☆ ★★★☆☆
策略模式
Strategy Pattern
★☆☆☆☆ ★★★★☆
模板方法模式
Template Method Pattern
★★☆☆☆ ★★★☆☆
访问者模式
Visitor Pattern
★★★★☆ ★☆☆☆☆

文章转载自 —— 从招式与内功谈起——设计模式概述(二):设计模式是什么?

相关文章

  • 23种常用设计模式

    基础知识 设计模式概述 从招式与内功谈起——设计模式概述(一):设计模式从何而来? 从招式与内功谈起——设计模式概...

  • 23种常用设计模式

    基础知识 设计模式概述 从招式与内功谈起——设计模式概述(一):设计模式从何而来? 从招式与内功谈起——设计模式概...

  • 23种常用设计模式

    基础知识 设计模式概述 从招式与内功谈起——设计模式概述(一):设计模式从何而来? 从招式与内功谈起——设计模式概...

  • 23种设计模式及案例,你看我就完事了。

    目录介绍:一 、设计模式概述:1.1 从招式与内功谈起——设计模式概述(一)[https://www.jiansh...

  • 从招式与内功谈起——设计模式概述(二)

    1.2 设计模式是什么 俗话说:站在别人的肩膀上,我们会看得更远。设计模式的出现可以让我们站在前人的肩膀上,通过一...

  • 从招式与内功谈起——设计模式概述(三)

    1.3 设计模式有什么用 下面我们来回答最后一个问题:设计模式到底有什么用?简单来说,设计模式至少有如下几个用途:...

  • 从招式与内功谈起——设计模式概述(一)

    关于金庸小说中到底是招式重要还是内功重要的争论从未停止,我们在这里并不分析张无忌的九阳神功和令狐冲的独孤九剑到底哪...

  • 设计模式 Day01 设计模式概要

    一、设计模式从何而来? 1. 如果把软件工程里面的技术分为招式和内功,你认为哪些技术是招式?哪些技术是内功? 招式...

  • 轻松搞定设计模式

    1.设计模式概述 如果把修习软件开发当作武功修炼的话,那么可以分为内功和外功 招式:Java,C#,C++等编程语...

  • 内功与招式

    关于西方个人成长的书籍并不是很喜欢阅读。 思考不喜欢的原因: 1.所追求不同。所有关于个人成长的书籍都是为了让自己...

网友评论

      本文标题:从招式与内功谈起——设计模式概述(二)

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