设计原则和设计模式01

news2024/10/3 2:25:32

一:软件设计原则

1.单一职责原则:

有且只有一个原因引起类的变化(类或者接口的职责单一化)

2.里氏替换原则:

子类可以扩展父类的功能,但不能改变父类原有的功能

3.依赖倒置原则:

1.高层模块不应该依赖于底层模块,都应该依赖于他们的抽象
2.抽象不应该依赖于细节
3.细节应该依赖于抽象

4.接口隔离原则:

建立单一职责的接口,不要建立臃肿庞大的接口,接口细化(比如10个接口其中5个查的,5个写的,在一个接口文件写着,但是是提供给5个服务用的,就需要细化,按单一职责原则,可能是按照读写进行拆分,接口隔离原则就需要按服务拆分)

5.迪米特原则:

一个对象应该对其他对象有最少了解,一个类应该对自己需要耦合的或调用的类知道的最少

6.开闭原则

一个软件实体应该对扩展开放,对修改关闭:一个软件实体应该通过扩展来实现变化,而不是通过修改已有的代码实现变化

二:设计模式

1.单例模式

单例模式简单代码
在这里插入图片描述

1.单例模式的优点

1.由于单例模式在内存中只有一个实例,减少了内存开支,特别是一个对象需要频繁的创建,销毁时,而且创建和销毁时性能又无法优化,单例模式的优势就非常明显了

2.由于单例模式只生成一个实例,所以减少了系统的性能开销,当一个对象的产生需要比较多的资源时候,如读取配置,产生其他依赖对象等,则可以在应用启动时候直接产生一个对象常驻内存的方式解决

3.单例模式可以避免对资源的多重占用,由于只有一个实例对象存在于内存中,避免了对同一个资源文件的同时写资源

4.单例模式可以在系统中设置全局的安全点,优化和共享资源访问,

2.单例模式的缺点

1.没有接口,扩展困难,需要扩展的话只能修改代码
2.高并发环境下,如果单例模式没有完成,不能进行正常的测试
3.与单一职责原则冲突,一个类只实现一个逻辑,是不是单例应该与环境有关,但是单例模式把单例和业务逻辑进行了绑定

2.工厂方法模式

1.定义

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3.抽象工厂模式

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.模板模式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.建造者模式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

Java注解

Java注解(Annotation) Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。 注解也叫元数据,一种代码级别的说明,说明程序的是给计算机看的,与类,接口…

事件绑定(onsubmit)表单提交

事件绑定(onsubmit)表单提交 学习路线:JavaScript基础语法(输出语句)->JavaScript基础语法(变量)->JavaScript基础语法(数据类型)->JavaScript基础语法(运算符&#xff09…

Python笔记 · Python语言的“动态性”

尽管对于Python程序员来说已经司空见惯,但是当那些从非动态语言转过来的程序员初次看到形如self.xxxxxx的语句就是在定义对象属性时往往会感到“离奇”:一个未经声明的(类似private int a;那样)变量,直接从self中“点”…

java知识回顾笔记(对象、反射、内省、实例、父类、构造方法、封装、泛型、super())

类&对象 在创建了一个类时,只声明但不赋值,其默认值为: 理解下图含义,即可理解对象和类: 实例 对象又被称为实例,实例变量被创建时,系统默认会赋值,例如: Studen…

什么知识库工具适合小团队?看看文档管理系统+NAS的最新解决方案

编者按:还在为团队选那款网盘而发愁吗?试试文档管理系统和NAS结合吧,高效率低成本,适合小团队。 关键词:免维护,免安装,大容量,在线编辑,文档共享,数据安全 对于企业或…

LeetCode-66-加一

1、从后向前遍历 我们可以从后向前遍历数组,针对不同的情况进行操作:1、若当前数字不为9,则我们直接将数字的值加一并返回即可;2、若当前数字为9,我们将当前数字置为0并对前一位执行加一操作;3、若所有数字…

后端接口时通时不通,团队全链路排查实战

背景: 1 最近团队做了一套系统,已经临近上线了; 2 后端的服务和前端的代码都是新写的,两边的服务器,数据库也都是新申请的; 3 本来测试的时候用的测试服务器,一切都挺好的,但部署到线…

基于分发与计算的GRTN全球实时传输网络

一张能同时满足「分发」与「计算」需求的网。 从直播趋势看「分发」与「计算」 阿里云直播产品架构图中,主要分为端和云两个部分:在端侧,主要包含推流端和播放端;在云侧,一是基于分布式节点构建的传输网,二…

mosquitto部署mqtt broker 并测试订阅与发布

mosquitto部署mqtt broker 并测试订阅与发布 1,MQTT协议介绍 MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型…

如何使用phpstudy在服务器上发布Discuz_X3.4_SC_UTF8_20220811和zzcms2023

Web-ZZCMS: 源码下载:http://www.zzcms.net/about/6.html Web-Discuz: 源码下载:https://www.discuz.net/ 首先安装phpstudy,傻瓜式安装教程,如果中途 遇到报错比如我遇到的是Apache未启动,80端…

Ansible自动化部署安装openGauss3.1企业版单机

文章目录一、背景二、环境准备三、具体实施步骤3.1、安装ansible3.2、配置主机清单3.3、测试主机连通性3.4、创建相关目录3.5、下载openGauss软件包到files目录3.6、创建变量文件3.7、创建安装时需要的xml模板3.8、创建任务文件四、执行自动化安装4.1、校验语法4.2、自动化安装…

CAD新手必练图形三

这次说的这个CAD新手必练图形,用到了CAD直线、圆、多边形、修剪和旋转等多个CAD功能命令,一起跟着操作一下吧 目标图形 操作步骤 1.使用CAD直线命令绘制一条垂直的直线和两条水平的直线,两条水平的直线之间的距离为15,并将他们修…

【CSDN竞赛第11期】编程竞赛总结

文章目录前言/背景题目与解题代码1. 圆小艺2. K皇把妹3. 筛选宝物4. 圆桌CSDN编程竞赛报名地址:https://edu.csdn.net/contest/detail/16 前言/背景 目前已经连续参加10次CSDN的编程竞赛了,这种比赛挺有意义,希望一直举办下去! 题…

JDBC 访问数据库

文章目录一、实验目的二、实验要求三、实验内容1、设计数据库表2、定义实体类3、定义数据库连接类4、实现数据库的增删改查5、测试用例一、实验目的 理解 JDBC 的工作原理,掌握 JDBC 访问数据库; 掌握常见数据库 MYSQL ; 二、实验要求 理解…

【华为上机真题 2022】字符串序列判定

🎈 作者:Linux猿 🎈 简介:CSDN博客专家🏆,华为云享专家🏆,Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊! &…

中断系统中的设备树__中断号的演变与irq_domain

1 中断号与硬件相关_号码固定 当我们的系统中只有一两个中断控制器时,上面的方法很有用,可以给每一个中断预先确定好他的虚拟中断号,但是当中断控制器越来越多、当中断越来越多,上述方法(virq和hwirq固定绑定)有缺陷: a. 增加工作…

马克思的手稿-第11届蓝桥杯Scratch选拔赛真题精选

[导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第92讲。 蓝桥杯选拔赛每一届都要举行4~5次,和省赛、国赛相比,题目要简单不少,再加上篇幅有限,因此我精挑细选…

23软考备考已开始,网络工程师知识点速记~(2)

新一轮软考备考来啦~ 为了帮助大家提高备考效率,将2023上半年软考网络工程师知识点速记分享给大家,快来跟着一起打卡学习吧! 指令系统 指令系统是中央处理器所有指令的集合,通常一条指令可分解为操作码和地址码两部分&#xff…

python 从一道作业题到制作一个图形界面的“诈金花”游戏

题目很简单:就是自己写一个程序,实现诈金花游戏的发牌、判断输赢。 规则: 一付扑克牌,去掉大小王,每个玩家发3张牌,最后比大小,看谁赢。 牌型: 豹子:三张一样的牌&am…

Fluent案例:肾动脉RDN治疗过程的仿真

1 问题背景 肾动脉消融(Renal denervation,简称RDN)是一种治疗高血压的办法,其基本原理为利用插入肾动脉的电极消融导管进行射频消融,使肾动脉血管壁附近的交感神经因高温而损伤失活,减少神经系统过度活跃的…