设计模式三大类及六大设计原则

设计模式分为三大类:

创建型模式,共五种:
  • 单例模式
  • 工厂方法模式
  • 抽象工厂模式
  • 建造者模式
  • 原型模式
结构型模式,共七种:
  • 适配器模式
  • 装饰模式
  • 代理模式
  • 外观模式
  • 桥接模式
  • 组合模式
  • 享元模式
行为型模式,共十一种:
  • 策略模式
  • 模板方法模式
  • 观察者模式
  • 迭代子模式
  • 责任链模式
  • 命令模式
  • 备忘录模式
  • 状态模式
  • 访问者模式
  • 中介者模式
  • 解释器模式

设计模式的六大设计原则

开闭原则
对扩展开放,对修改关闭

里氏代换原则
基类出现的地方,子类也可以出现

控制倒转原则
真正面向抽象编程,而不是依赖于具体

接口隔离原则
多个隔离的接口比单一的接口要好

迪米特法则
最少知道原则,一个类尽量少的和其他类发生相互作用

合成复用原则
尽量使用合成/聚合的方式,而不是继承

转载于:https://www.cnblogs.com/xx2017/p/10983137.html

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

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

相关文章

linux标准I/O——按行输入和输出

文章目录1.按行输入函数2.从键盘读入&#xff0c;并打印3.按行输出4.键盘输入字符串&#xff0c;写入文本5.将文本中的字符串按行读出到buf中&#xff0c;并打印buf1.按行输入函数 2.从键盘读入&#xff0c;并打印 #include<stdio.h> #include<string.h>#define N…

IEEE发布2022年科技趋势全球调研:人工智能和机器学习、云计算及5G将成为下一年最重要的技术...

来源&#xff1a;IEEE电气电子工程师近日&#xff0c;全球最大的专业技术组织IEEE&#xff08;电气电子工程师学会&#xff09;发布了《IEEE全球调研&#xff1a;科技在2022年及未来的影响》。根据本次调研结果显示&#xff0c;人工智能和机器学习、云计算及5G技术将成为影响20…

5 LInux系统目录结构

ls / 显示根目录下的文件 /bin bin是Binary的缩写&#xff0c;这个目录存放着经常使用的命令 /boot 存放的是启动Linux时使用的一些核心文件&#xff0c;包括一些连接文件以及镜像文件 /dev 是Device&#xff08;设备&#xff09;的缩写&#xff0c;该目录下存放的是Linux的…

linux标准I/O——按对象输入和输出

文章目录1.按对象操作函数1.按对象操作函数

iOS开发-多层嵌套block中如何使用__weak和__strong

1、关于__weak__weak只能在ARC模式下使用&#xff0c;也只能修饰对象&#xff08;比如NSString等&#xff09;&#xff0c;不能修饰基本数据类型&#xff08;比如int等&#xff09;__weak修饰的对象在block中不可以被重新赋值。__weak只在ARC下使用&#xff0c;可以避免循环引用…

为了节省能量,人类演化出了“不合规律”的大脑神经元 | Nature

图片来源&#xff1a;Pixabay来源&#xff1a;麻省理工学院、科研圈神经元通过电脉冲相互交流&#xff0c;而电脉冲是由控制钾和钠等离子流动的离子通道产生的。在一项新研究中&#xff0c;美国麻省理工学院&#xff08;Massachusetts Institute of Technology&#xff09;的神…

linux标准I/O——流的相关操作

文章目录1.刷新流2.不断将键盘内容写入g.txt文件中3.定位流4.定位流的实例1.刷新流 2.不断将键盘内容写入g.txt文件中 #include<stdio.h>#define N 1024 int main() {FILE *fd;char buf[N];fdfopen("./g.txt","a");while(1){fgets(buf,N,stdin);fpu…

国外发明的10大仿生机械,这才是真正的黑科技!

来源&#xff1a;工信头条仿生机械就是模仿生物的形态、结构和控制原理设计制造出的功能更集中、效率更高并具有生物特征的机械。研究仿生机械的学科称为仿生机械学&#xff0c;它是20世纪60年代末期由生物学、生物力学、医学、机械工程、控制论和电子技术等学科相互渗透、结合…

linux标准I/O——格式化输出

文章目录1.格式化输出函数2.输出日期到文本文档和数组中3.练习3.1 题目3.2 提示3.3 实现1.格式化输出函数 2.输出日期到文本文档和数组中 #include<stdio.h>int main() {int year2021,month4,date8;FILE *fd;char buf[64];fdfopen("data.txt","a");…

如何让css与js分离

在 webpack 我们如何让 css 与 js 分离&#xff1b; 我们需要安装插件&#xff1a;extract-text-webpack-plugin 1. 用&#xff1a;npm 下载插件 npm install extract-text-webpack-plugin --save-dev 2.在官网上查看用法&#xff1a;https://www.npmjs.com/ less 的配置&#…

钱学森在30年前对虚拟现实和元宇宙的思考

以下文字是钱学森在1990年给汪成为院士的信中对虚拟现实技术的科学意义和未来发展给与的思考和建议&#xff0c;他也提出可以将虚拟现实技术成为灵境技术。

项目:NMEA2000的数据格式解析

1.基础资料 1.1 CAN扩展帧格式介绍 can扩展帧 1.2 can扩展帧和NMEA2000格式关系 CAN帧和NMEA2000关系 1.3 NMEA2000_v1-300_App_B1_PGN_Table PGN 1.4 GPS NMEA2000数据解析 GPS NMEA2000数据解析

SpringBoot项目部署到独立的Tomcat上

1.修改启动类 1 SpringBootApplication2 MapperScan("com.wm.springboot.dao")3 public class SpringbootApplication extends SpringBootServletInitializer {4 5 Override6 protected SpringApplicationBuilder configure(SpringApplicationBuilder builde…

一图读懂:中国科学院“基础研究十条”

来源&#xff1a;中科院之声未来智能实验室的主要工作包括&#xff1a;建立AI智能系统智商评测体系&#xff0c;开展世界人工智能智商评测&#xff1b;开展互联网&#xff08;城市&#xff09;大脑研究计划&#xff0c;构建互联网&#xff08;城市&#xff09;大脑技术和企业图…

linux文件IO——文件IO介绍

文章目录1.文件IO和标准IO区别2.什么是文件IO3.文件描述符4.open函数5.close函数1.文件IO和标准IO区别 \qquad标准IO遵从ANSIC&#xff0c;文件IO遵从POSIX&#xff1b; \qquad标准IO有缓冲机制&#xff0c;文件IO没有&#xff1b; \qquad标准IO通过流FILE来操作&#xff0c;文…

量化因果涌现表明:宏观可以战胜微观

来源&#xff1a;集智俱乐部作者&#xff1a;Erik P. Hoel, Larissa Albantakis, Giulio Tononi 译者&#xff1a;赵婷婷 审校&#xff1a;梁金 编辑&#xff1a;邓一雪 导语复杂系统内的因果关系可以从不同时空尺度来分析。通常认为&#xff0c;由于微观尺度包含了所有细节&am…

SpringBoot RabbitMQ 延迟队列代码实现

场景 用户下单后&#xff0c;如果30min未支付&#xff0c;则删除该订单&#xff0c;这时候就要可以用延迟队列 准备 利用rabbitmq_delayed_message_exchange插件&#xff1b; 首先下载该插件&#xff1a;https://www.rabbitmq.com/community-plugins.html 然后把该插件放到rabb…

linux文件IO——编程接口

文章目录1.read函数2.使用read函数计算文本文件中字符总数3.write函数4.复制文本文件5.指定文件名的方式复制文件6.lseek函数1.read函数 2.使用read函数计算文本文件中字符总数 #include<stdio.h> #include<stdlib.h> #include <sys/types.h> #include <…

为提高能量利用效率,大脑会对感官进行预测

来源&#xff1a;混沌巡洋舰编译&#xff1a;王晔编辑&#xff1a;青暮我们的大脑是一个包裹在颅骨中重达三磅的组织块&#xff0c;它是如何从感觉中创造出感知的&#xff1f;这一直以来都是个谜。数十年来&#xff0c;有大量的研究和证据表明&#xff0c;大脑不可能只是简单地…

linux文件IO——目录操作和文件属性

文章目录1.opendir函数2.readdir函数3.closedir函数4.打印指定目录下的所有文件名称5.chmod函数和fchmod函数6.获取文件的属性1.opendir函数 2.readdir函数 3.closedir函数 4.打印指定目录下的所有文件名称 #include<stdio.h> #include <sys/types.h> #include &l…