设计模式总结

embedded/2024/10/22 0:38:25/

设计模式

设计模式就是软件源码中类和项目这两层。
本质上是类与类之间,文件与文件之间的关系。
是为了在增加和修改代码时,最大化复用代码,减少耦合度,减少修改。
太简单,无需增加修改的系统难看出来设计模式

面向对象

  • 增加代码的复用,维护,扩展能力。修改代码无需改动先前的代码。
  • 使用类。封装,继承,多态。使用松耦合模式。
  • 封装的方法
    • 归类->抽象出父类
    • 找重复的代码->封装进父类中
    • 无需改动原来的代码

工厂模式

  • 面向对象,封装多个类,继承多个不同的子类,多态使用同一个父类
  • 面向对象代码解耦合后判断如何实例化哪个多态类。
    • 简单工厂:使用分支语句
    • 抽象工厂:使用反射
  • 新建一个工厂类,判断条件,返回对应的类。

状态模式

  1. 用途:减少分支判断语句。当一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为时,就可以考虑使用状态模式了。
  2. 方法:使用抽象类,不同的状态类实现不同的分支。

http://www.ppmy.cn/embedded/129413.html

相关文章

FLUX.1-dev模型本地训练推理教程(GPU/NPU)

模型简介 Flux.1模型是由Black Forest Labs推出的文生图模型套件,具备强大的生成式模型开发能力。该模型由Stable Diffusion的原班人马创立,成员多来自Stable Diffusion的开发团队,因此继承了高水平的模型开发能力。 Flux.1模型包含三个不同…

MATLAB基础应用精讲-【数模应用】负二项回归(附R语言和python代码实现)

目录 前言 几个高频面试题目 负二项回归、Probit回归如何选择 负二项回归 Probit回归 知识储备 逻辑回归 算法原理 多阈值负二项回归模型 模型及估计方法 负二项回归模型 多阈值负二项回归模型 分割阶段 精确估计阈值阶段 ​‌负二项回归的操作步骤 负二项回归…

使用Java API访问Apache Kafka

简介 Kafka是由Apache软件基金会开发的一个开源流处理平台,Kafka是一个功能强大且灵活的平台。 基本情况 软件名称:Apache Kafka 软件平台:跨平台 软件语言:Scala、Java 开发商:Apache软件基金会 软件授权:Apache License 2.0 最近更新时间:2024年7月23日 核心概念 -…

Clip 模型实现文搜图

Clip 模型是一种多模态,Clip 中包含了图片和文字的信息,通过 TextEncoder 和 ImageEncoder 将结果进行相似度匹配,这个很像 RAG 系统中 Embedding。通过 ClipModel 可是实现文找图的功能。 代码实现 代码来自官方示例,https://…

【计算机网络 - 基础问题】每日 3 题(四十九)

✍个人博客:https://blog.csdn.net/Newin2020?typeblog 📣专栏地址:http://t.csdnimg.cn/fYaBd 📚专栏简介:在这个专栏中,我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞…

Redis Geo 数据类型解析:基于 ZSET 的高效地理位置管理0708

根据官网介绍: Bitmaps are not an actual data type, but a set of bit-oriented operations defined on the String type which is treated like a bit vector. Since strings are binary safe blobs and their maximum length is 512 MB, they are suitable to s…

SAP_MM模块-设置业务合作伙伴类型字段必输(多种方案)

一、业务背景 公司需要把供应商增加一个细分的维度,并且要求该字段设置为必输,防止用户新增供应商时忘记维护。这里给用户找了一个分类的字段:业务合作伙伴类型,本文主要讲解如何设置该字段设置为必填; 注意&#xff…

JavaScript中 固定 this指向 (call、apply、bind 函数)

前置知识 this 关键字js原型及原型链 背景 由于对象的属性可以赋给另一个对象,所以属性所在的当前对象是可变的,即this的指向是可变的。 this的动态切换,固然为 JavaScript 创造了巨大的灵活性,但也使得编程变得困难和模糊。 有…