架构设计五大原则 SOLID五大设计原则
SRP:单一职责原则
容易误认为是指:一个软件模块都应该只做一件事,实际上并不准确。单一职责原则准确描述应该是:一个软件模块都应该只对一类行为负责。
如果多个特性不同的项目同时依赖同一个底层接口,只要有任意一个项目需要改动依赖的底层接口逻辑,就会影响到其他项目。
单一职责原则主要讨论函数和类之间的关系,但在两个层面上有不同的表现形式。在组件层面,称为共同闭包原则;在软件架构层面,则用于奠定架构边界的变更轴心。
OCP:开闭原则
良好的软件设计应该是易于扩展,抗拒修改。
开闭原则主要目的是让系统易于扩展,同时限制其每次被修改所影响的范围。实现方式是通过将系统划分为一系列组件,并将这些组件间的依赖关系按层次结构进行组织,使得高阶组件不会因低阶组件被修改影响。
LSP:里氏替换原则
任何基类可以出现的地方,子类一定可以出现。
里氏替换原则一旦违背了可替换性,该系统架构就不得不为此增加大量复杂的应对机制。
ISP:接口隔离原则
个类与另一个类之间的依赖性,应该依赖于尽可能小的接口。
接口隔离原则避免依赖不需要的东西,以免带来意料之外的麻烦。
DIP:依赖反转原则
在设计系统时,多引用抽象类型,而非具体实现。例如Spring的IOC和DI。
架构设计五大原则 SOLID五大设计原则相关推荐
- solid 设计原则 php,面向对象设计SOLID五大原则
今天我给大家带来的是面向对象设计SOLID五大原则的经典解说. 我们知道,面向对象对于设计出高扩展性.高复用性.高可维护性的软件起到很大的作用.我们常说的SOLID五大设计原则指的就是: S = 单一 ...
- 六大设计原则(SOLID)
一.SOLID 设计模式的六大原则有: Single Responsibility Principle:单一职责原则 Open Closed Principle:开闭原则 Liskov Substit ...
- 五大设计原则 SOLID
目录 1.单一职责原则 2.开闭原则 3.里式替换原则 4.接口隔离原则 5.依赖倒置原则 1.单一职责原则 如果一个类承担的职责过多,就等于把这些职责耦合在一起了.一个职责的变化可能会削弱或者抑制这 ...
- 流行20年的架构设计原则SOLID可能已经不适合微服务了
点击上方"服务端思维",选择"设为星标" 回复"669"获取独家整理的精选资料集 回复"加群"加入全国服务端高端社群「后 ...
- SOLID五大原则【图解】
目录 前序 五大基本原则-SOLID 1. SRP 2. OCP 3. LSP 4. ISP 5. DIP 参考链接 前序 做C语言开发的应该都知道,C是面向过程开发的,而c++是面向对象开发的.而封 ...
- 六大设计原则 (SOLID)
设计原则概述 设计模式中主要有六大设计原则,简称为SOLID ,是由于各个原则的首字母简称合并的来(两个L算一个,solid 稳定的),六大设计原则分别如下: 1.单一职责原则(Single Resp ...
- 设计模式之内功心法 SOLID五大原则
内功心法 前言 意义 五经 单一原则 开闭原则 里式替换 接口隔离 依赖倒置 前言 随着计算机行业的不断发展,人们对于可以给予自身快速成长的技术非常的痴迷.就比如今天要聊的设计模式,学过编程的都知道设 ...
- 六大设计原则SOLID
六大设计原则SOLID 一.SOLID 设计模式的六大原则 二.单一职责原则 (Single Responsibility Principle) 1. 单一职责原则定义 2. 问题由来 3. 解决方案 ...
- Apache架构师总结的30条设计原则!
点击上方"朱小厮的博客",选择"设为星标" 后台回复"加群",加入新技术 Srinath|ImportSource 今天把 RPC 框架乞丐 ...
最新文章
- μ子刷屏的背后:说「新物理学即将现身」还为之过早
- 入门十大Python机器学习算法(附代码)
- boost::hana::take_front用法的测试程序
- php 打印对象到文件,php实现将数组或对象写入到文件的方法小结【三种方法】...
- Depth-first Search深度优先搜索专题4
- 续--Flask, Django - 区别
- 51Nod 1079 中国剩余定理 Label:数论
- 如何取得事件中鼠标坐标
- 计算机科学家论文引用排名:LeCun终于晋身三巨头
- 把语言环境变量改为英文
- linux 邮件服务器 并给外网发送邮件,Linux下判断公网IP是否改变,并发送邮件通知...
- CI框架 -- 核心文件 之 Loader.php(加载器)
- 模式识别与机器学习第四章特征选择和提取
- Unity_检测颜色相似度
- 广告标示符(adId) adfv标示符的那些问题
- PHP操作redis详细讲解
- Mac中删除docker镜像
- 室外AP设备的防雷接地
- 如何做Unity手游性能优化的
- python建立数据库连接时出错_python连接数据库
热门文章
- 软件项目管理案例教程第4版课后习题第一章
- Java项目:网上水果超市商城设计和实现(java+SSM+springboot+redis)
- linux服务器抓包实例
- Hadoop是什么?(处理大数据存储和分析的基础架构)
- 第一次写“辅助”软件(微信游戏跳一跳)
- 卸载计算机更新程序包,win7系统删除系统更新安装包的详细教程
- 软件工程网络15个人阅读作业1(201521123111 陈伟泽)
- 阿里云产品推荐——轻量应用服务器
- 淘宝网店装修模板尺寸大小及格式大全
- 【论文摘要】基于多数投票模式和超混沌加密的彩色图像鲁棒安全零水印算法