SRP:单一职责原则

容易误认为是指:一个软件模块都应该只做一件事,实际上并不准确。单一职责原则准确描述应该是:一个软件模块都应该只对一类行为负责。

如果多个特性不同的项目同时依赖同一个底层接口,只要有任意一个项目需要改动依赖的底层接口逻辑,就会影响到其他项目。

单一职责原则主要讨论函数和类之间的关系,但在两个层面上有不同的表现形式。在组件层面,称为共同闭包原则;在软件架构层面,则用于奠定架构边界的变更轴心。

OCP:开闭原则

良好的软件设计应该是易于扩展,抗拒修改。

开闭原则主要目的是让系统易于扩展,同时限制其每次被修改所影响的范围。实现方式是通过将系统划分为一系列组件,并将这些组件间的依赖关系按层次结构进行组织,使得高阶组件不会因低阶组件被修改影响。

LSP:里氏替换原则

任何基类可以出现的地方,子类一定可以出现。

里氏替换原则一旦违背了可替换性,该系统架构就不得不为此增加大量复杂的应对机制。

ISP:接口隔离原则

个类与另一个类之间的依赖性,应该依赖于尽可能小的接口。

接口隔离原则避免依赖不需要的东西,以免带来意料之外的麻烦。

DIP:依赖反转原则

在设计系统时,多引用抽象类型,而非具体实现。例如Spring的IOC和DI。

架构设计五大原则 SOLID五大设计原则相关推荐

  1. solid 设计原则 php,面向对象设计SOLID五大原则

    今天我给大家带来的是面向对象设计SOLID五大原则的经典解说. 我们知道,面向对象对于设计出高扩展性.高复用性.高可维护性的软件起到很大的作用.我们常说的SOLID五大设计原则指的就是: S = 单一 ...

  2. 六大设计原则(SOLID)

    一.SOLID 设计模式的六大原则有: Single Responsibility Principle:单一职责原则 Open Closed Principle:开闭原则 Liskov Substit ...

  3. 五大设计原则 SOLID

    目录 1.单一职责原则 2.开闭原则 3.里式替换原则 4.接口隔离原则 5.依赖倒置原则 1.单一职责原则 如果一个类承担的职责过多,就等于把这些职责耦合在一起了.一个职责的变化可能会削弱或者抑制这 ...

  4. 流行20年的架构设计原则SOLID可能已经不适合微服务了

    点击上方"服务端思维",选择"设为星标" 回复"669"获取独家整理的精选资料集 回复"加群"加入全国服务端高端社群「后 ...

  5. SOLID五大原则【图解】

    目录 前序 五大基本原则-SOLID 1. SRP 2. OCP 3. LSP 4. ISP 5. DIP 参考链接 前序 做C语言开发的应该都知道,C是面向过程开发的,而c++是面向对象开发的.而封 ...

  6. 六大设计原则 (SOLID)

    设计原则概述 设计模式中主要有六大设计原则,简称为SOLID ,是由于各个原则的首字母简称合并的来(两个L算一个,solid 稳定的),六大设计原则分别如下: 1.单一职责原则(Single Resp ...

  7. 设计模式之内功心法 SOLID五大原则

    内功心法 前言 意义 五经 单一原则 开闭原则 里式替换 接口隔离 依赖倒置 前言 随着计算机行业的不断发展,人们对于可以给予自身快速成长的技术非常的痴迷.就比如今天要聊的设计模式,学过编程的都知道设 ...

  8. 六大设计原则SOLID

    六大设计原则SOLID 一.SOLID 设计模式的六大原则 二.单一职责原则 (Single Responsibility Principle) 1. 单一职责原则定义 2. 问题由来 3. 解决方案 ...

  9. Apache架构师总结的30条设计原则!

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"加群",加入新技术 Srinath|ImportSource 今天把 RPC 框架乞丐 ...

最新文章

  1. μ子刷屏的背后:说「新物理学即将现身」还为之过早
  2. 入门十大Python机器学习算法(附代码)
  3. boost::hana::take_front用法的测试程序
  4. php 打印对象到文件,php实现将数组或对象写入到文件的方法小结【三种方法】...
  5. Depth-first Search深度优先搜索专题4
  6. 续--Flask, Django - 区别
  7. 51Nod 1079 中国剩余定理 Label:数论
  8. 如何取得事件中鼠标坐标
  9. 计算机科学家论文引用排名:LeCun终于晋身三巨头
  10. 把语言环境变量改为英文
  11. linux 邮件服务器 并给外网发送邮件,Linux下判断公网IP是否改变,并发送邮件通知...
  12. CI框架 -- 核心文件 之 Loader.php(加载器)
  13. 模式识别与机器学习第四章特征选择和提取
  14. Unity_检测颜色相似度
  15. 广告标示符(adId)  adfv标示符的那些问题
  16. PHP操作redis详细讲解
  17. Mac中删除docker镜像
  18. 室外AP设备的防雷接地
  19. 如何做Unity手游性能优化的
  20. python建立数据库连接时出错_python连接数据库

热门文章

  1. 软件项目管理案例教程第4版课后习题第一章
  2. Java项目:网上水果超市商城设计和实现(java+SSM+springboot+redis)
  3. linux服务器抓包实例
  4. Hadoop是什么?(处理大数据存储和分析的基础架构)
  5. 第一次写“辅助”软件(微信游戏跳一跳)
  6. 卸载计算机更新程序包,win7系统删除系统更新安装包的详细教程
  7. 软件工程网络15个人阅读作业1(201521123111 陈伟泽)
  8. 阿里云产品推荐——轻量应用服务器
  9. 淘宝网店装修模板尺寸大小及格式大全
  10. 【论文摘要】基于多数投票模式和超混沌加密的彩色图像鲁棒安全零水印算法