OO设计原则
OO设计原则:SOLID
SOLID
-
SRP(The Single Responsibility Principle,单一责任原则)
- 不应有多于1个的原因使得一个类发生变化
- 一个类,一个责任
-
OCP(The Open-Closes Principle,开放-封闭原则)
- 对修改封闭,对扩展开放
-
LSP(The Liskov Substitution Principle,Liskov替换原则)
- 子类型必须能够替换其父类型
-
DIP(The Dependency Inversion Principle,依赖转置原则)
- 抽象的模块不应依赖于具体的模块
- 换言,delegation时,应通过interface建立联系,而非具体子类
-
ISP(The Interface Segregation Principle,接口聚合原则)
- 不能强迫客户端依赖于它们不需要的接口,只提供必须的接口
- 也就是不要在一个接口中写太多方法,避免这种胖接口,分解成多个小接口
相关文章:
OO设计原则
OO设计原则:SOLID SOLID SRP(The Single Responsibility Principle,单一责任原则) 不应有多于1个的原因使得一个类发生变化一个类,一个责任 OCP(The Open-Closes Principle,开放-封闭原则&…...
《深入理解计算机系统(CSAPP)》第5章 优化程序性能 - 学习笔记
写在前面的话:此系列文章为笔者学习CSAPP时的个人笔记,分享出来与大家学习交流,目录大体与《深入理解计算机系统》书本一致。因是初次预习时写的笔记,在复习回看时发现部分内容存在一些小问题,因时间紧张来不及再次整理…...
【Spring Boot】033-使用 `@ResponseBody` 注解代替`ServletResponse`?
【Spring Boot】033-使用 ResponseBody 注解代替ServletResponse? 文章目录 【Spring Boot】033-使用 ResponseBody 注解代替ServletResponse?0、全局总结一、ResponseBody 注解与 ServletResponse 比较1、ResponseBody 注解2、ServletResponse3、总结 二…...
【openGauss实战13】闪回技术
📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…...
Top大学教授:青年学者,请避免这些写作问题→
在科研初期,很多作者由于缺乏经验和指导,糊里糊涂地发了一些质量较低的论文。 为了帮助青年科学家提高写作能力,比利时鲁汶大学的Blocken教授(同时也是Building & Environment、Journal of Wind Engineering & Industrial…...
使用midjourney搞出一套三国人物画像!
当下已进入如火如荼的全民AI时代,最近体验了下midjourney,使用它的以图生图功能生成出来一套三国人物画像,和大家分享下使用心得。 使用midjourney的准备工作 下载工具 使用midjourney生产图片依赖的工具和流程,大致如下&#x…...
ELK日志分析系统
ELK日志分析系统 日志主要包括系统日志/var/log 应用日志 安全日志secure, rsyslog远程传输日志进行汇总集中化管理,日志统计和检索又成为一件比较麻烦的事情,、 1、完整日志系统基本特征 收集:能够采集多种来源的日志数据 …...
整型在内存中的存储
目录 一、为什么内存中存储补码? 二、大小端概念 百度笔试试题: 几道小题: 一、为什么内存中存储补码? 上一节我们了解了原码,反码,补码的概念(http://t.csdn.cn/N0grg)ÿ…...
子集-回溯算法
1题目 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 1: 输入:nums [1,2,3] 输出:[[],[1],[2],[1…...
公司study three
ctrlwind:新建桌面 ctrlwin 箭头 切换桌面 WIN CTRL F4 删除桌面 stream foreach遍历 instFormModifytracesList.stream().forEach(s->{ s.setModifyUser(sysUserTemplate.getNameById(s.getModifyUser()));});拼接 String collect2 peopleList.stream()…...
【运维】speedtest测试
目录 docker 布署 布署云端 docker布署 云端放置于已有容器里 librespeed/speedtest: Self-hosted Speedtest for HTML5 and more. Easy setup, examples, configurable, mobile friendly. Supports PHP, Node, Multiple servers, and more (github.com) docker 布署 获取…...
CycloneDDS开源代码在Linux系统上编译生成可执行文件的详细步骤
cyclonedds开源代码在Linux系统上编译生成可执行文件的详细步骤 1 远程仓库CycloneDDS源码下载2 创建build目录3 进入build目录4 指定安装路径前缀5 编译 cmake --build6 编译完成后进行安装7 版本构建并编译7.1 虚拟机网络桥接7.2 镜像源添加7.3 CUnit单元测试工具安装7.4 编译…...
PLL锁相环的一部分--鉴频鉴相器
鉴频鉴相器作为锁相环的一部分也是有相对应的独立芯片. 鉴频鉴相器芯片主要有以下几种: LM565/LM565C 鉴频鉴相器芯片XR2211CP 鉴频鉴相器芯片NE567 比较器、鉴频、鉴相 ICMC1496/LM1496 综合运算放大器与调制/解调器 ICLM567 比较器、鉴频、鉴相 ICMC100EP2100 高…...
CSS实现磨砂玻璃(毛玻璃)效果样式
要实现磨砂玻璃背景,可以使用 CSS3 中的 ::before 伪元素和 backdrop-filter 属性,结合 opacity 属性和 blur() 函数来实现。 具体实现步骤如下: 创建一个具有背景的元素,例如一个 div 元素。 div {background-image: url(&quo…...
Solidity拓展:数学运算过程中数据长度溢出的问题
在数学运算过程中假如超过了长度则值会变成该类型的最小值,如果小于了该长度则变成最大值 数据上溢 uint8 numA 255; numA;uint8的定义域为[0,255],现在numA已经到顶了,numA会使num变成0(由于256已经超过定义域,它会越过256&…...
【C语言】经典题目(一)
【C语言】字符串刷题篇在这里哦! 【C语言】字符串—刷题篇 【C】语言经典题目,五个摘录为一篇,将会持续更新啦!💞 C语言经典题目 三位数水仙花数完数求利润三个数数字排序 三位数 💫题目 已知有1、2、3、4…...
Linux 设备树文件手动编译的 shell 脚本
前言 前面通过 Makefile 实现手动编译 Linux 设备树 dts 源文件及其 设备树依赖 dtsi、.h 头文件,如何写成一个 shell 脚本,直接编译呢? 其实就是 把 Makefile 重新编写为 shell 脚本即可 编译设备树 shell 脚本 脚本内容如下:…...
C++核心编程——初识STL——STL的基本概念和六大组件
文章目录💬 一.前言二.STL基本概念和组成①容器②算法③迭代器④空间配置器⑤适配器⑥仿函数 三.STL工作机制 一.前言 长久以来,软件界一直希望建立一种可重复利用的东西,以及一种得以制造出“可重复运用的东西”的方法,让程序员的心血不止于…...
5.2图的BFS与DFS遍历
一.BFS遍历 1.图的广度优先遍历代码实现 说明: 1.广度优先遍历,类比树的层次遍历(树属于特殊的图) 2.对应算法想象图的物理结构存储: 邻接矩阵表示唯一时间复杂度:O(|V|^2); 邻接表不唯一:O(|V|2|E|)&…...
JSP+SQL网上选课系统(源代码+论文+答辩PPT)
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。学生选课系统作为一种现代化的教学技术,以越来越受到人民的重视,是一个学校不可缺少的部分, 学生选课系统就是为了管理好选课信息而设计的。学…...
基于决策树与Boosting的暗网流量多阶段分类系统设计与实践
1. 项目概述:为什么暗网流量分类是个“硬骨头”?在网络安全这个没有硝烟的战场上,流量分类技术就像是前沿阵地的“雷达”和“声呐”。它的任务很简单:从海量、混杂的网络数据流中,快速、准确地识别出哪些是正常的网页浏…...
DeepSeek数据脱敏与联邦学习实战方案(2024最新版零信任架构白皮书)
更多请点击: https://intelliparadigm.com 第一章:DeepSeek数据隐私保护概述 DeepSeek系列大模型在训练与推理过程中严格遵循数据最小化、目的限定及用户可控原则,其隐私保护机制贯穿数据采集、预处理、模型训练、服务部署与日志管理全生命周…...
CleanMyWechat:一键解放你的PC微信存储空间
CleanMyWechat:一键解放你的PC微信存储空间 【免费下载链接】CleanMyWechat 自动删除 PC 端微信缓存数据,包括从所有聊天中自动下载的大量文件、视频、图片等数据内容,解放你的空间。 项目地址: https://gitcode.com/gh_mirrors/cl/CleanMy…...
选择Taotoken的Token Plan套餐,为长期项目锁定更优成本
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 选择Taotoken的Token Plan套餐,为长期项目锁定更优成本 对于有长期、稳定大模型调用需求的企业或独立开发者而言&#…...
2026最新!降AIGC工具测评:论文降重与改写神器推荐
2026年真正好用的AI论文降重与改写工具,核心看降重效果、去AI味、格式保留、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 …...
3小时从零掌握:通达信缠论量化插件终极实战指南 [特殊字符]
3小时从零掌握:通达信缠论量化插件终极实战指南 🚀 【免费下载链接】Indicator 通达信缠论可视化分析插件 项目地址: https://gitcode.com/gh_mirrors/ind/Indicator 通达信缠论量化插件是一款革命性的技术分析工具,专为股票投资者打造…...
CAXA工艺图表中文版全流程下载与安装教程实录
如大家所熟悉的,CAXA工艺图表是一款功能强大且十分专业的计算机辅助工艺设计(CAPP)软件工具,专为制造业企业打造,集2D/3D图形编辑、图文混排、工艺知识库、典型工艺重用与结构化工艺数据管理于一体,用于高效…...
独立开发者如何借助taotoken低成本试验多种ai模型能力
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 独立开发者如何借助Taotoken低成本试验多种AI模型能力 对于独立开发者或个人项目爱好者而言,在创意实现阶段࿰…...
FanControl终极指南:3步掌握Windows风扇控制,打造静音高效散热系统
FanControl终极指南:3步掌握Windows风扇控制,打造静音高效散热系统 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode…...
Linux AppImage终极管理指南:如何一键集成便携应用到系统菜单
Linux AppImage终极管理指南:如何一键集成便携应用到系统菜单 【免费下载链接】AppImageLauncher Helper application for Linux distributions serving as a kind of "entry point" for running and integrating AppImages 项目地址: https://gitcode.…...
