设计模式-23种基础模式目录

server/2024/10/18 12:15:38/

种一棵树最好的时间点是十年前,其次是现在
—— Dambisa Moyo《dead aid》

对软件设计来说,23种基本设计模式就像象棋里面的基本杀法一样。就算你从来没学过基本杀法,从来没听说过二鬼拍门、八角马和双车错这种专业术语,也不代表你一局都赢不了

那是不是说基础设计模式跟基础杀法都是形式主义的产物,用来装X的无用知识?


怎么可能,就拿二鬼拍门来说,没学过的棋手往往会在多兵残局中落下风,甚至必胜局被顶和(比如 三高兵必胜士相全 的残局,虽然是必胜,但必须做出二鬼拍门的棋形,这也是唯一的赢法。但如果没学过,往往会被顶和)

你应该注意到了,我刚刚用的词是 做出。学过基本杀法的人从一开始就会思考如何形成基本杀法里描述的棋形,所以会比没学过的人少走一些弯路,对于激烈的对攻局来说,最后的胜利也经常会因为一两步的顺序而易主


23种基本设计模式虽然不至于让你跟谁决出生死,但是对于软件设计来说,上到系统设计,小到某个组件关节,通常都是有多种方案可供选择的。设计模式为你提供的是前辈们总结出来的最优解。同时通过了解设计模式,你也能理解他们当年的解题思路,这种思路的根据是什么,以及一些四海之内皆可用的原则

设计模式不会让你立刻成为设计系统的大师,相反你在消化的过程中可能还要经历很长一段看到什么都想用模式的菜鸟阶段。但是别灰心,总有一天,你会发现你在写代码时会突然冒出这样一个念头:

——咦,我刚刚的这段实现,不就是 xx 模式吗?




创建型模式

创建型模式抽象了实例化过程。他们帮助一个系统独立于如何创建、组合和表示他的那些对象。

  • 工厂方法
  • 抽象工厂
  • 生成器
  • 原型
  • 单例



结构型模式

结构型模式涉及如何组合对象以获取更大的结构

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



行为型模式

行为型模式涉及算法和对象间职责的分配。行为型模式不仅描述对象或类的模式,还描述它们之间的通信模式

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




还可以通过专栏【设计模式】进行访问,欢迎点赞、收藏或订阅~


http://www.ppmy.cn/server/15959.html

相关文章

WebDriver库:实现对音频文件的自动下载与保存

1. 背景介绍 音频娱乐在当今社会已经成为了人们日常生活中不可或缺的一部分。从早晨的音乐播放到晚上的电台节目,音频内容贯穿了我们的整个生活。随着互联网的普及和技术的进步,越来越多的音频内容通过网络平台进行传播和分享。网易云音乐作为中国领先的…

猫头虎分享已解决Error || 已解决error: subprocess-exited-with-error

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单人脸检测/识别实战案例 之三 简单人脸眼睛检测添加睫毛效果

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单人脸检测/识别实战案例 之三 简单人脸眼睛检测添加睫毛效果 目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单人脸检测/识别实战案例 之三 简单人脸眼睛检测添加睫毛效果 一、简单介绍 二、简单人脸眼睛检测添加…

【面试题】java后端开发实习(含答案)

java后端开发实习生-常见面试题 1)JDK,JRE,JVM的关系 JDK JRE java开发工具JRE JVM java核心类库 2)String类的常用方法 1.关于字符串获取方面 length 获取长度charAt 获取指定索引的字符indexOf 获取字符所在的索引位置lastIndexOf 获取字符所在…

Pandas 2.2 中文官方教程和指南(二十五·二)

新列 使用 DataFrame.map(以前称为 applymap)高效动态创建新列 In [53]: df pd.DataFrame({"AAA": [1, 2, 1, 3], "BBB": [1, 1, 2, 2], "CCC": [2, 1, 3, 1]})In [54]: df Out[54]: AAA BBB CCC 0 1 1 2 1…

Apifox接口调试工具

1、Apifox简介 Apifox 是集 API 文档、API 调试、API Mock、API 自动化测试多项实用功能为一体的 API 管理平台,定位为 Postman Swagger Mock JMeter。旨在通过一套系统、一份数据,解决多个工具之间的数据同步问题。只需在 Apifox 中定义 API 文档&a…

ROS标定海康威视摄像头

ROS视摄像头标定----海康威视 引言: ​ 摄像头标定是为了确保视觉系统能够准确反映现实世界中的对象,并消除图像中的畸变效果。在本实验中,我们使用了ROS中的功能包进行摄像头标定。标定的原理包括畸变校正和摄像头参数估计。通过移动标定板并…

常见UI组件(二)

一、文本输入 1.1 概述 TextInput为文本输入组件,用于接收用户输入的文本内容 1.2 参数 Entry Component struct Index {build() {Column({space : 50}) {TextInput({placeholder:请输入用户名}).width(70%)TextInput({text:当前内容}).width(70%)}.width(100%).…