💻博主现有专栏:
C51单片机(STC89C516),c语言,c++,离散数学,算法设计与分析,数据结构,Python,Java基础,MySQL,linux,基于HTML5的网页设计及应用,Rust(官方文档重点总结),jQuery,前端vue.js,Javaweb开发,设计模式、Python机器学习等
🥏主页链接:
目录
🎯 设计模式的诞生与发展
- 软件设计:
- 设计模式
- 体系结构(软件架构)
- 管道过滤器架构
- MVC架构
- 微服务架构
- 云计算架构
- 无服务架构
🎃 模式的诞生
- 模式(Pattern)起源于建筑业而非软件业
- 模式之父——美国加利佛尼亚大学环境结构中心研究所所长Christopher Alexander博士
- 《A Pattern Language: Towns, Buildings, Construction》——253个建筑和城市规划模式
- 模式
- Context(模式可适用的前提条件)
- Theme或Problem(在特定条件下要解决的目标问题)
- Solution(对目标问题求解过程中各种物理关系的记述)
🎃模式的定义
Alexander给出了关于模式的经典定义:
每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心,通过这种方式,人们可以无数次地重用那些已有的解决方案,无需再重复相同的工作
模式是在特定环境中解决问题的一种方案 (A pattern is a solution to a problem in a context)
🎃设计模式
- 软件模式 20世纪80年代末,软件工程界开始关注 Christopher Alexander等在公共建筑 与城市规划领域的重大突破
- “四人组(Gang of Four,GoF,分别是Erich Gamma, Richard Helm, Ralph Johnson和John Vlissides)”于1994年归纳发表了23种在软件开发中使用频率较高的设计模式,旨在用模式来统一沟通面向对象方法在分析、设计和实现间的鸿沟。
🎃软件模式
软件模式:在一定条件下的软件开发问题及其解法
🎃设计模式的定义
设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结
使用设计模式是为了可重用代码、让代码更容易被他人理解、提高代码的可靠性
🎃设计模式的基本要素
设计模式一般有如下几个基本要素:模式名称、问题、目的、解决方案、效果、实例代码和相关设计模式,其中的关键元素包括以下四个方面:
- 模式名称 (Pattern name)
- 问题 (Problem)
- 解决方案 (Solution)
- 效果 (Consequences)