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

news/2024/7/8 1:34:34 标签: 设计模式

文章目录

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

一. 设计原则与思想

  1. 面向对象编程基础

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

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

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

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

 

  1. 设计原则与方法论

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

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

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

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

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

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

 

3. 规范与重构

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

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

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

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

 

二. 设计模式与范式

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

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

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

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

 

三. 设计模式进阶

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

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

 

四. 项目实战

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

 


http://www.niftyadmin.cn/n/5536005.html

相关文章

C# MathNet未完

Vector 在 MathNet.Numerics 中&#xff0c;Vector<T> 是表示向量的类。Vector<T> 可以是列向量或行向量&#xff0c;具体取决于你如何创建它以及如何使用它。以下是一些创建和使用 Vector<T> 的常见方法&#xff1a; 使用 Build.Dense 创建列向量&#xf…

Python/Django 服务器升级脚本

编写 Python/Django 服务器升级脚本可以根据具体需求而异&#xff0c;一般涵盖以下几个主要步骤&#xff1a; 在编写脚本之前&#xff0c;确保以下准备工作已完成&#xff1a; 确定需要升级的内容&#xff0c;例如代码、数据库结构、依赖库等。确保服务器和数据库备份&#x…

python vtkLODProp3D

vtkLODProp3D是VTK库中的一个类&#xff0c;用于表示一个可以根据相机距离改变其复杂度的3D对象。这种技术可以用于优化渲染性能&#xff0c;特别是当场景中有大量的对象或对象复杂度很高时。 在Python中&#xff0c;你可以使用VTK库来操作和处理3D数据。如果你想使用vtkLODPr…

Spring Boot:轻松设置全局异常处理

Spring Boot&#xff1a;轻松设置全局异常处理 在软件开发中&#xff0c;异常处理是一项至关重要的任务。对于使用Spring Boot的开发者来说&#xff0c;设置全局异常处理不仅可以提高代码的整洁度&#xff0c;还可以提升用户体验。本文将详细介绍如何在Spring Boot中轻松设置全…

FFT 简单基础(matlab

使用 fs 进行采样&#xff0c;进行 N点FFT 选择显示0~N/21点的幅值 横坐标对应频率计算公式&#xff1a; fs * n / N 举个梨子&#xff1a; 频率2kHz采样1s&#xff0c;得到2000个点的序列y(n) 对序列y(n)做4096点的FFT 幅值响应对应的横坐标频率…

bpftrace几种使用实例

1. 排查内存泄漏 memory.c memory.bt 可以执行相关memory&#xff0c;用bpftrace追踪malloc和free的过程 修改memory.bt&#xff0c;加上malloc和free统计&#xff0c;重新执行 2. 验证tcp连接关闭是应用关闭还是内核关闭 nginx服务启动后&#xff0c;会处于监听状态&…

DT浏览器很好用

DT浏览器是一款简单的浏览器&#xff0c;又是强大的浏览器&#xff0c;界面简洁大方&#xff0c;软件使用流畅。DT浏览器的网址收藏&#xff0c;人工智能写作&#xff0c;书法笔记等功能与众不同。DT浏览器的图文识别功能和笔记本搭配使用&#xff0c;可以对内容编辑修改和保存…

k8s-第二节-常用操作

k8s命令行常用操作 k8s命令行 操作对象时都要前面声明操作对象类型 kubectl get kubectl describe kubectl delete kubectl edit kubectl logs kubectl exec kubectl port-forward 端口转发将pod 端口映射出来 kubectl cp 本地文件路径:容器文件路径 kubectl apply …