设计模式(一):设计原则、常用设计模式

embedded/2025/2/13 23:57:24/

1. 设计原则

SOLID原则-SRP单一职责原则:一个类或者模块只负责完成一个职责(或者功能)。

SOLID原则-OCP开闭原则:如果要添加一个新的功能,能够在已有代码基础上直接扩展代码,而不用修改已有代码就能实现,那么就符合“扩展开放、对修改关闭”原则。

SOLID原则-LSP里式替换原则:子类对象能够替换程序中父类对象出现的任何地方,并且保证原来程序的逻辑行为不变及正确性不被破坏。

SOLID原则-ISP接口隔离原则:客户端不应该被强迫依赖它不需要的接口。其中的“客户端”,可以理解为接口的调用者或者使用者。

SOLID原则-DIP依赖倒置原则:高层模块不要依赖低层模块。高层模块和低层模块应该通过抽象来互相依赖。除此之外,抽象不要依赖具体实现细节,具体实现细节依赖抽象。比如,编写的Web应用程序代码只需要部署在Tomcat容器下,便可以被Tomcat容器调用执行。按照之前的划分原则,Tomcat就是高层模块,我们编写的Web应用程序代码就是低层模块。Tomcat和应用程序代码之间并没有直接的依赖关系,两者都依赖同一个“抽象”,也就是Servlet规范。Servlet规范不依赖具体的Tomcat容器和应用程序的实现细节,而Tomcat容器和应用程序依赖Servlet规范。

KISS原则:尽量保持简单,需要逻辑简单、代码简洁。

YAGNI原则:不要去设计当前用不到的功能;不要去编写当前用不到的代码,即不要做过度设计。


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

相关文章

非华为电脑制作一碰传NFC贴纸

前提: 在笔记本上安装好华为电脑管家,可以在 github 上下载,并测试可以正常和手机或平板连接步骤: 1、打开电脑华为电脑管家,点【快捷服务】,记录下序列号,一般安装后会生成16位的序列号 2、…

Zabbix7.0服务器在告警发生时自动调用客户机脚本

一、问题的产生 部署的应用服务器偶尔会因为各种原因停止服务,以往都是用户反馈后进行排查处理,90%以上的处理措施是重启服务。 在zabbix服务器部署完成后添加了触发器监控相应端口,故障发生后会给运维人员发送通知邮件,处理的时…

两个同一对象targetList和 sourceList 去重

我现在需要解决的问题是从一个Java的源列表`sourceList`中移除所有在目标列表`targetList`中存在的数据,并且还要去除`targetList`中的重复数据。让我先理清楚这两个问题的思路。 首先,如何快速从`sourceList`中移除含有`targetList`的数据。这里的“含有”应该是指两个列表中…

rabbitMQ数据隔离

用户管理 点击Admin选项卡,就会呈现rabbitMQ控制台的用户管理界面 Name:sde,也就是用户名Tags:administrator,说明sde用户是超级管理员,拥有所有权限Can access virtual host: /,可…

前端知识速记--JS篇:instanceof

前端知识速记–JS篇:instanceof 在JavaScript中,instanceof运算符用于检测一个对象是否是另一个对象的实例。它的基本语法为:obj instanceof Constructor。如果obj是Constructor的实例,它将返回true,否则返回false。这…

如何顺利开设Facebook账户并设置广告账户

随着数字营销的快速发展,Facebook成为了许多企业进行品牌推广、增加曝光和吸引潜在客户的重要平台。为了能够在Facebook上投放广告,首先需要开设一个Facebook个人账户,并进一步设置广告账户。 一、创建Facebook个人账户 1.访问Facebook官方…

Django中apps.py作用

在 Django 中,apps.py 文件用于定义应用程序的配置类(AppConfig),主要作用包括: 1. 应用程序配置 apps.py 中的 AppConfig 类用于配置应用程序的元数据和行为,例如应用程序的名称、标签等。 2. 应用程序…

微信小程序 - 分包加载

分包加载 小程序的代码通常是由许多页面、组件以及资源等组成,随着小程序功能的增加,代码量也会逐渐增加,体积过大就会导致用户打开速度变慢,影响用户的使用体验。 分包加载是一种小程序优化技术。将小程序不同功能的代码&#…