【设计模式】设计模式学习线路与总结

文章目录

    • 一. 设计原则与思想
    • 二. 设计模式与范式
    • 三. 设计模式进阶
    • 四. 项目实战

设计模式主要是为了改善代码质量,对代码的重用、解耦以及重构给了最佳实践,如下图是我们在掌握设计模式过程中需要掌握和思考的内容概览。
在这里插入图片描述

一. 设计原则与思想

  1. 面向对象编程基础

掌握类、对象、继承、多态等基本概念。

【《设计模式之美》】如何取舍继承与组合

【设计模式之美】面向对象分析方法论与实现(一):需求分析方法论

【设计模式之美】面向对象分析方法论与实现(二):需求到接口实现的方法论

 

  1. 设计原则与方法论

熟悉SOLID原则(单一职责、开闭原则、里氏替换原则、接口隔离原则、依赖倒置原则)及其在设计模式中的应用。

【设计模式之美】SOLID 原则之一:怎么才算是单一原则、如何取舍单一原则

【设计模式之美】SOLID 原则之二:开闭原则方法论、开闭原则如何取舍

【设计模式之美】SOLID 原则之三:里式替换(LSP)跟多态有何区别?如何理解LSP中子类遵守父类的约定

【设计模式之美】 SOLID 原则之四:接口隔离原则有哪三种应用?原则中的“接口”该如何理解?

【设计模式之美】 SOLID 原则之五:依赖反转原则:将代码执行流程交给框架

 

3. 规范与重构

【设计模式之美】重构一:重构定义、单元测试保证重构正确性

【设计模式之美】重构二:重构提高代码可测试性、mock替换外部服务

【设计模式之美】重构(三)之解耦方法论:如何通过封装、抽象、模块化、中间层等解耦代码?
 

【设计模式之美】快速地改善代码质量的几条编程规范(上)

 

二. 设计模式与范式

  • 创建型模式,如工厂模式、单例模式、建造者模式。

  • 结构型模式,如适配器模式、装饰器模式、代理模式。

【设计模式】继承的替代方式:装饰者模式-动态丰富对象功能,而不是实现大量的继承实例

  • 行为型模式,如策略模式、观察者模式、模板方法模式。

 

三. 设计模式进阶

  1. 深入学习进阶设计模式
  • 并发模式,如生产者-消费者模式、读写锁模式。
  • 学习并实现其他高级模式,如享元模式、访问者模式、备忘录模式。
  1. 学习反模式及其避免
    理解反模式(如过度设计、不足设计等)及其对软件设计的影响。

  2. 领域驱动设计(DDD)与设计模式的结合
    理解如何将领域驱动设计中的战略设计与设计模式结合,优化复杂系统的设计。

 

四. 项目实战

【设计模式-2】策略模式 - 避免冗余的if-else判断。数据库迁移框架、flink 类型转换框架例子对策略模式的使用

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/866293.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

qt6 获取百度地图(一)

需求分析: 要获取一个地图, 需要ip 需要根据ip查询经纬度 根据经纬度查询地图 另外一条线是根据输入的地址 查询ip 根据查询到的ip查地图‘ 最后,要渲染地图 上面这这些动作,要进行http查询: 为此要有三个QNet…

机器学习与AI大数据的融合:开启智能新时代

在当今这个信息爆炸的时代,大数据和人工智能(AI)已经成为推动社会进步的强大引擎。作为AI核心技术之一的机器学习(Machine Learning, ML),与大数据的深度融合正引领着一场前所未有的科技革命,不…

电子画册制作的小秘密都在这篇文章了

电子画册作为现代营销和展示的重要工具,已经成为各类企业和个人宣传品的首选。相比传统印刷画册,电子画册不仅节省成本,还能通过多媒体元素增强视觉冲击力,提升用户互动体验。本文将介绍电子画册制作的基础步骤和关键要点&#xf…

电气-伺服(4)CANopen

一、CAN Controller Area Network ,控制器局域网,80年的德国Bosch的一家公司研发可以测量仪器直接的实时数据交换而开发的一款串行通信协议。 CAN发展历史 二、CAN 的osi 模型 CAN特性: CAN 的数据帧 三、CANopen 什么是CANopen CANopen 的网络模型 …

Unity In App Purchasing内购校验

1,利用收据验证混淆器 把后台的key填进去,点击自动生成一些文件 2,代码过滤 using UnityEngine.Purchasing.Security;在IAPManager.cs的 public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs e)增加 #if !UNITY_EDITOR…

香橙派AIpro如何赋能AI+边缘流媒体设备

文章目录 (一)前言(二)AI边缘流媒体设备展示(三)赋能AI边缘流媒体设备1、准备开发环境2、在板子中下载编译安装SRS3、基本推拉流测试4、多路推流性能测试 (四)一些注意事项1、开发板…

springboot 篮球馆管理系统-计算机毕业设计源码21945

目 录 摘要 1 绪论 1.1选题背景 1.2研究意义 1.3论文结构与章节安排 2 篮球馆管理系统系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系统用例分析 2.4 …

ctfshow sql注入

开启其他注入 web221 limit注入 给出查询语句 以及过滤逻辑为空 获取数据库名即可 limit 用于控制返回结果行数 limit后面似乎只能跟PROCEDURE ANALYSE( ) 函数了 PROCEDURE ANALYSE( ) 函数用于分析查询结果的函数 参数是用来控制函数的 这个参数的位置 可以放入报错函数 原…

MySQL—创建查看删除备份恢复数据库

创建数据库 创建数据库 LLF_DB01CREATE DATABASE LLF_DB01删除数据库DROP DATABASE LLF_DB01创建一个使用utf8字符集的数据库并带校对规则的数据库CREATE DATABASE hsp_db03 CHARACTER SET utf8 COLLATE utf8_bin 查看、删除数据库 显示所有的数据库SHOW DATABASES显示数据库…

AI PC(智能电脑)技术分析

一文看懂AI PC(智能电脑) 2024年,英特尔、英伟达等芯片巨头革新CPU技术,融入AI算力,为传统PC带来质的飞跃,引领智能计算新时代。 2024年,因此被叫作人工智能电脑(AI PC)…

2024 年第十四届 APMCM 亚太地区大学生数学建模竞赛B题超详细解题思路+数据预处理问题一代码分享

B题 洪水灾害的数据分析与预测 亚太中文赛事本次报名队伍约3000队,竞赛规模体量大致相当于2024年认证杯,1/3个妈杯,1/10个国赛。赛题难度大致相当于0.6个国赛,0.8个妈杯。该比例仅供大家参考。 本次竞赛赛题难度A:B:C3:1:4&…

C语言程序是怎么在计算机中运行起来的

hello.c #include <stdio.h>int main(){printf("hello,world\n");return 0; }这段 C语言程序的代码能被编程人员读懂&#xff0c;但是计算机系统读不懂。C语言、C、java 这些高级编程语言本质上还是人类用的语言而不是计算机用的语言。 为了能在计算机上运行这…

无忧易售功能:刊登页面文本翻译,无缝对接全球买家

每一个词语&#xff0c;每一句话&#xff0c;都承载着产品的灵魂和品牌的故事&#xff0c;无忧易售的刊登页面文本翻译服务&#xff0c;一键操作即可将你的产品介绍、详情或广告文案转化为多语言版本&#xff0c;轻松管理&#xff0c;高效发布。 一、Allegro、OZON、Coupang、…

第7章:Electron文件系统操作(2)

7.2 文件对话框 Electron 提供了 dialog 模块用于显示文件打开和保存对话框。 7.2.1 显示文件打开对话框 主进程代码&#xff1a; const { app, BrowserWindow, ipcMain, dialog } require(electron); const path require(path);let mainWindow;const createMainWindow …

盘点2024年最新鼠标连点器推荐

电脑鼠标连点器是一种可以帮助用户自动化点击操作的小工具&#xff0c;广泛应用于游戏、自动化办公和测试等领域。选择一款合适的鼠标连点器能够提高工作和娱乐的效率&#xff0c;避免重复点击带来的疲劳。小编将为您介绍电脑鼠标连点器的产品特点、推荐几款实用的鼠标连点器并…

一览 Anoma 上的有趣应用概念

撰文&#xff1a;Tia&#xff0c;Techub News 本文来源香港Web3媒体&#xff1a;Techub News Anoma 的目标是为应用提供通用的意图机器接口&#xff0c;这意味着使用 Anoma&#xff0c;开发人员可以根据意图和分布式意图机编写应用&#xff0c;而不是根据事务和特定状态机进行…

Java增加线程后kafka仍然消费很慢

文章目录 一、问题分析二、控制kafka消费速度属性三、案例描述 一、问题分析 Java增加线程通常是为了提高程序的并发处理能力&#xff0c;但如果Kafka仍然消费很慢&#xff0c;可能的原因有&#xff1a; 网络延迟较大&#xff1a;如果网络延迟较大&#xff0c;即使开启了多线…

新手拍短视频的些许建议

1、尽早行动&#xff0c;拒绝完美主义&#xff0c;有手机就能上车&#xff0c;一开始别花太多时间在打磨细节上。总是要准备好了后再做&#xff0c;就总比别人慢一步&#xff0c;可能永远也追不上了&#xff1b; 2、坚持发&#xff0c;度过难熬的启动期就行&#xff0c;不要走…

启明智显Model3A芯片方案7寸高清触摸屏ZX7D00CM21S:开箱、设置与实操全攻略指南

一、背景 本指南将详细介绍启明智显的Model3A芯片方案下的7寸高清触摸屏ZX7D00CM21S的开箱步骤、基础设置以及实操应用。无论您是电子爱好者、开发者还是工程师&#xff0c;这份指南都能助您快速上手并充分利用这款触摸屏的各项功能。 二、硬件介绍 ZX7D00CM21S 7寸高清触摸屏是…

谷歌正在试行人脸识别办公室安全系统

内容提要&#xff1a; &#x1f9ff;据美国消费者新闻与商业频道 CNBC 获悉&#xff0c;谷歌正在为其企业园区安全测试面部追踪技术。 &#x1f9ff;测试最初在华盛顿州柯克兰的一间办公室进行。 &#x1f9ff;一份内部文件称&#xff0c;谷歌的安全和弹性服务 (GSRS) 团队将…