刷题4.28

1、 

开闭原则软件实体(模块,类,方法等)应该对扩展开放,对修改关闭,即在设计一个软件系统模块(类,方法)的时候,应该可以在不修改原有的模块(修改关闭)的基础上,能扩展其功能(扩展开放)
里氏替换原则所有引用基类的地方必须能透明地使用其派生类的对象,即子类可以扩展父类的功能,但不能改变父类原有的功能
迪米特原则(最少知道原则)一个软件实体应当尽可能少地与其他实体发生相互作用,每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的
单一责任原则只能让一个类/接口/方法有且仅有一个职责
接口分离原则不能强迫用户去依赖那些他们不使用的接口
依赖倒置原则高层次模块不应该依赖于低层次模块,二者都应该依赖于抽象,抽象不应该依赖于细节,细节应该依赖于抽象,针对接口编程,不要针对实现编程
组合/聚合复用原则尽量使用组合/聚合,不要使用类继承

2、

桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立地变化 

例如:

有红色蓝色的球体和正方体,需要四个子类

 

 将形状和颜色单独作为一层,就是抽取其中一个维度并使之成为独立的类层次:

 

3、

责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,用于将请求从一个处理者传递到另一个处理者,直到请求被处理为止。在这个模式中,每个处理者都有机会处理请求,如果当前处理者无法处理请求,则将其传递给下一个处理者,直到找到可以处理请求的处理者。 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue之--使用TypeScript

搭配 TypeScript 使用 Vue​ 像 TypeScript 这样的类型系统可以在编译时通过静态分析检测出很多常见错误。这减少了生产环境中的运行时错误,也让我们在重构大型项目的时候更有信心。通过 IDE 中基于类型的自动补全,TypeScript 还改善了开发体验和效率。…

【Android Framework (八) 】- Service

文章目录 知识回顾启动第一个流程initZygote的流程system_serverServiceManagerBinderLauncher的启动AMS 前言源码分析1.startService2.bindService 拓展知识1:Service的两种启动方式对Service生命周期有什么影响?2:Service的启动流程3:Service的onStartCommand返回…

nginx(七十二)nginx中与cookie相关的细节探讨

背景知识铺垫 一 nginx中与cookie相关 ① Cookie请求头内容回顾 cookie的形式和属性 ② nginx获取cookie值的两种方法 1) $http_cookie -->获取Cookie请求头"所有值"2) $COOKIE_flag -->获取Cookie请求头的"某个key"[1]、脱敏场景在日志中只…

榜上有名 | 创宇盾荣登“2023 IT市场权威榜单”!

4月20日,已连续成功举办23届的IT市场年会在北京举行,作为权威咨询机构赛迪主办,中国IT业界延续时间最长的年度盛会之一,“2023 IT市场年会”隆重发布重磅权威榜单。 创宇盾作为云防护领域专业防护产品,在国家经济产业…

零成本教你部署一个ChatGPT网站

📋 个人简介 💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜📝 个人主页:馆主阿牛🔥🎉 支持我:点赞👍收藏⭐️留言&#x1f4d…

为何电商这么难做…...你是否忽略了这个问题?

物流时效是影响买家体验的重要环节,物流服务优劣也是买家网上购物时的重要参考依据。但电商企业对于快递公司的时效承诺、服务质量基本处于被动接受的状况,直到买家投诉才知道快递公司服务缺失,若买家不投诉也没法主动知道大量的订单是否按约…

Excel技能之实用技巧,高手私藏

今天来讲一下Excel技巧,工作常用,高手私藏。能帮到你是我最大的荣幸。 与其加班熬夜赶进度,不如下班学习提效率。能力有成长,效率提上去,自然不用加班。 消化吸收,工作中立马使用,感觉真不错。…

随手记录:Livox 时间戳修改为ROS时间戳

参考与前言 传感器类型:Livox-Mid70 参考链接:Ubuntu20.04系统安装Livox ROS Driver 官方驱动:https://github.com/Livox-SDK/livox_ros_driver 碎碎念:之所以要改成rostime主要是 提取pcd的时候发现这个timestamp 300.xxx 打…

史上最全Maven教程(三)

文章目录 🔥Maven工程测试_Junit使用步骤🔥Maven工程测试_Junit结果判定🔥Maven工程测试_Before、After🔥依赖冲突调解_最短路径优先原则🔥依赖冲突调解_最先声明原则🔥依赖冲突调解_排除依赖、锁定版本 &a…

ByteHouse云数仓版查询性能优化和MySQL生态完善

ByteHouse云数仓版是字节跳动数据平台团队在复用开源 ClickHouse runtime 的基础上,基于云原生架构重构设计,并新增和优化了大量功能。在字节内部,ByteHouse被广泛用于各类实时分析领域,最大的一个集群规模大于2400节点&#xff0…

2023年6月CDGP数据治理专家认证报名及费用

目前6月DAMA-CDGP数据治理认证考试开放报名地区有:北京、上海、广州、深圳、长沙、呼和浩特。 目前南京、济南、西安、杭州等地区还在接近开考人数中,打算参加6月考试的朋友们可以抓紧时间报名啦!!! DAMA认证为数据管…

肝一肝设计模式【二】-- 工厂模式

系列文章目录 肝一肝设计模式【一】-- 单例模式 传送门 肝一肝设计模式【二】-- 工厂模式 传送门 文章目录 系列文章目录前言一、简单工厂模式二、工厂方法模式三、抽象工厂模式写在最后 前言 在实际开发过程中,构建对象往往使用new的方式来构建,但随着…

【社区图书馆】PyTorch高级机器学习实战 读书感想

《PyTorch高级机器学习实战》十大特点 1. 深入全面的内容覆盖: 本书的内容深入而全面,涵盖了深度学习中的多个领域,包括自然语言处理、计算机视觉、强化学习等,并介绍了各种不同的神经网络结构和优化算法。 2. 理论和实践并重&am…

php执行语句在MySQL批量插入大数据量的解决方案及计算程序执行时间(大数据量、MySQL语句优化)

MySQL里批量插入大数据的解决方案 前言一、PHP计算程序执行时间二、Mysql批量插入数据1.INSERT INTO 语句2.批量插入大数据2.1 使用循环$sql的方式2.2 循环(值1, 值2,....)的语句2.3测试过程出现的错误 三、实战PHPExcel批量导入大数据量优化 前言 近期在MySQL报表开发过程中&…

【微服务笔记22】微服务组件之Sentinel控制台的使用(Sentinel Dashboard)

这篇文章,主要介绍微服务组件之Sentinel控制台的使用(Sentinel Dashboard)。 目录 一、Sentinel控制台 1.1、下载Dashboard控制台 1.2、搭建测试工程 (1)引入依赖 (2)添加配置信息 &#…

R语言的基本数学运算

目录 一、对象命名原则 二、基本数学运算 2.1 四则运算 2.2 余数和整除 2.3 次方或平方根 2.4 绝对值 2.5 exp()与对数 2.6 科学符号e 2.7 圆周率与三角函数 2.8 四舍五入函数 2.9 近似函数 2.10 阶乘 三、R语言控制运算的优先级 四、无限大 五、非数字&#xf…

3.7 Linux shell脚本编程(分支语句、循环语句)

目录 分支语句(对标C语言中的if) 多路分支语句(对标C语言中的swich case) 分支语句(对标C语言中的if) 语法结构: if 表达式 then 命令表 fi 如果表达式为真, 则执行命令表中的命令; 否则退出if语句,…

Linxu下性能指标采集工具之nmon工具的使用

前言 近期在测试JefLogTail,由于JefLogTail使用的是轮询的方式来监听文件夹,所以对cpu的消耗可能会高一些,所以在测试的时候着重关注CPU,Linux下查看CPU信息一般采用top命令来实时观察,但是这种对于只是通过观察数据的变化来评估…

Anaconda,CUDA注意事项

2. 呜呜呜!!!用别人的环境,如果他是非GPU版本的TF,你把非GPU版本的TF卸载后安装GPU版本的TF他也装不上。。。会默认给你装非GPU版本的TF!!!大坑比!!&#xf…

streamlit (python构建web可视化框架)笔记

文章目录 一、安装使用streamlit二、streamlit使用1.展示和数据样式2.dataframe()生成交互表和table()方法生成静态表3.绘制折线图4.绘制地图5.一些组件slider()滑动条 checkbox()确认框 selectbox()选择器6.侧边栏7.布局分列8.多页 三、Steamlit可视化简单应用--冒泡排序可视化…
最新文章