设计模式学习笔记(一):设计模式

1 前言

软件开发技术包含“招式”与“内功”,其中,编程语言,开发技术,著名框架能够认为是“招式”,而数据结构,算法,设计模式,重构,软件工程等则为“内功”。“招式”能够很快学会,可是“内功”的修炼须要更长的时间。对设计模式的学习会令“内功”大增,配合日益纯熟的“招式”,软件开发“功力”想必会达到一个新境界。下面来正式踏入修炼设计模式之旅。算法

2 设计模式

2.1 来源

模式是在特定环境下人们解决某类重复出现的问题的一套成功或有效的解决方案。
GoF(Gang of Four,简称GoF,分别是Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides)将模式的概念引入软件工程领域,标志着软件模式的诞生。软件模式是将模式的通常概念应用与软件开发领域,即软件开发的整体指导思想或参照样板。软件模式并不是仅限于设计模式,还包括架构模式,分析模式和过程模式等。
在软件模式中,设计模式是研究最为深刻的分支。设计模式用于在特定条件下为一些重复出现的问题提供合理的,有效的解决方案。编程

2.2 定义

设计模式通常定义以下:设计模式

设计模式是一套被反复使用的,多数人知晓的,通过分类编目的,代码设计经验的总结,使用设计模式是为了可重用代码,
让代码更容易被他人理解而且提升代码的可靠性。

设计模式通常包含的要素:bash

  • 模式名称
  • 问题
  • 目的
  • 解决方案
  • 效果

其中关键要素为模式名称,问题,解决方案以及效果:微信

  • 模式名称:模式的命名
  • 问题:描述了应该在什么时候使用模式,包括了设计中存在的问题以及问题存在的缘由
  • 解决方案:描述了一个设计模式的组成部分,以及这些组成部分之间的相互关系,各自的职责和协做方式,一般解决方案经过UML类图和核心代码进行描述
  • 效果:描述了模式的优缺点以及使用模式时应权衡的问题

GoF设计模式有23个,模式分类能够按照用途或者处理方式进行分类,按照用途分类的话,能够分为:数据结构

  • 建立型模式:主要用于描述如何建立对象
  • 结构型模式:主要用于描述如何实现类或对象的组合
  • 行为型模式:主要用于描述类或对象怎么交互以及怎样分配职责

根据处理方式分类,能够分为:架构

  • 类模式
  • 对象模式

两种分类模式一般结合使用,好比单例模式是对象建立型模式。框架

3 经常使用设计模式

3.1 建立型模式

  • 单例模式
  • 简单工厂模式
  • 工厂方法模式
  • 抽象工厂模式
  • 原型模式
  • 建造者模式

    3.2 结构型模式

  • 适配器模式
  • 桥接模式
  • 组合模式
  • 装饰模式
  • 外观模式
  • 享元模式
  • 代理模式

    3.3 行为型模式

  • 职责链模式
  • 命令模式
  • 解释器模式
  • 迭代器模式
  • 中介者模式
  • 备忘录模式
  • 观察者模式
  • 状态模式
  • 策略模式
  • 模板方法模式
  • 访问者模式

4 设计模式用途

  • 可以实现可维护性复用的设计方案,提升设计与开发效率
  • 设计模式提供了一套通用的设计词汇和一种通用的形式来方便开发人员之间的沟通以及交流,使得设计方案更加通俗易懂。由于设计模式跨语言,跨平台,跨应用,跨国界
  • 大部分设计模式都兼顾了系统的可重用性以及可扩展性,使得能够更好地重用一些已有的设计方案、功能模块以及一个完整的软件系统
  • 合理使用设计模式并对设计模式的使用状况进行文档化,将有助于别人更快地理解系统

5 总结

在这里插入图片描述

若是以为文章好看,欢迎点赞。编程语言

同时欢迎关注微信公众号:氷泠之路。ide

在这里插入图片描述

相关文章
相关标签/搜索