架构设计原则

6大设计原则

  1. Single Responsibility Principle  : 单一职责原则

  2. Liskov Substitution Principle : 里氏替换原则

  3. Dependence Inversion Principle :依赖倒置原则

  4. Interface Segregation Principle : 接口隔离原则

  5. Law of Demeter     : 迪米特法则

  6. Open Closed Principle : 开闭原则

软件开发之所以会有这些原则,就是因为复杂多变且不可预料的需求。并不是说在实际项目开发中对这六大原则中的每一条都遵循到极致,而是说在项目开发的过程中,根据项目的实际需求尽量的去遵守这些原则。当然要做到这些肯定是不容易的,能真正做到并且做好的恐怕也只能是有经验之人。

高内聚低耦合(High cohesion and low coupling)

什么是高内聚、低耦合?

问题场景:

模块独立性指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口简单,两个定性的度量标准――耦合性和内聚性。

耦合性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。

耦合性分类(低―高)

1 无直接耦合:

2 数据耦合: 指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言的值传递;

3 标记耦合: 指两个模块之间传递的是数据结构&#x

架构设计模式—6大设计原则相关推荐

  1. 设计模式01-七大设计原则

    设计模式01-七大设计原则 文章目录 设计模式01-七大设计原则 开闭原则-Open Close 依赖倒置原则-Dependence Inversion 单一职责原则-Simple ResponsiB ...

  2. 设计模式 — 6大设计原则(依赖倒置和接口隔离原则)

    设计模式 依赖倒置原则 示例 一 示例 二 依赖的三种写法 总结 接口隔离原则 实例 一 总结 依赖倒置原则 依赖倒置原则(Dependence Inversion Principle,DIP)这个名 ...

  3. 设计模式-6大设计原则

    我们在应用程序开发中,一般要求尽量两做到可维护性和可复用性.        应用程序的复用可以提高应用程序的开发效率和质量,节约开发成本,恰当的复用还可以改善系统的可维护性.而在面向对象的设计里面,可 ...

  4. Java架构师必须知道的 6 大设计原则

    转载自   Java架构师必须知道的 6 大设计原则 在软件开发中,前人对软件系统的设计和开发总结了一些原则和模式, 不管用什么语言做开发,都将对我们系统设计和开发提供指导意义.本文主要将总结这些常见 ...

  5. C++ 设计模式(8大设计原则、23种设计模式)李建忠

    简 述: 设计模式,久闻大名.此记录学习 "C++ 设计模式 李建忠" 的札记,核心共 8大设计原则.23中设计模式.后发现 GitHub 也有类似笔记 Ref1 .Ref2 相关 ...

  6. 设计模式之禅《一》 大旗不挥,谁敢冲锋 ——6大设计原则

    设计模式之禅<一>大旗不挥,谁敢冲锋 --6大设计原则 <一> 六大原则 一:单一职责原则 1.单一职责原则最难划分的就是职责 2.有两个可以变化的原因放到了一个接口中,这就为 ...

  7. Java 6大设计原则28大设计模式

    6大设计原则: 1. 单一职责原则 单一职责原则的英文名称是 Single Responsibility Principle ,简称是SRP(There should never be more th ...

  8. 设计模式概述—6大设计原则

    第一部分:6大设计原则 六大设计原则: 1)Single Responsibility Principle:单一职责原则 2)Open Closed Principle:开闭原则 3)Liskov S ...

  9. Java设计模式GOF之6大设计原则

    Java设计模式GOF之6大设计原则原则 1.开闭原则(Open Close Principle) 一个软件实体如类.模块和函数应该对扩展开放,对修改关闭. 开闭原则是面向对象的可复用设计的第一块基石 ...

最新文章

  1. HDU - 2767 Proving Equivalences tanjar强连通-DAG性质
  2. 获取手机当前显示的ViewController
  3. 浅谈万进制算法与大数定理的结合(高精度乘除法,阶乘)
  4. Atitit.遍历图像像素点rgb java attilax总结
  5. android微信风格,Android开发实现模仿微信小窗口功能【Dialog对话框风格窗口】
  6. webservice实例java_Java WebService(实战) 简单实例
  7. layui跨域问题的解决
  8. 对于根目录磁盘满的了问题
  9. 经纬度WGS84地理坐标系转换成CGCS2000坐标系步骤
  10. 13电路交换、报文交换、分组交换原理
  11. cmt obm odm 代工模式oem_ODM/OEM/OBM的区别
  12. 对索引存储与散列存储的一些形而上的思考
  13. [poj3130][半平面交]How I Mathematician Wonder What You Are!
  14. operands could not be broadcast together with remapped shapes
  15. 全国计算机四级网络工程师教程,全国计算机等级考试立体化应试教程——四级网络工程师...
  16. C# 如何减少装箱拆箱
  17. 循环中continue用法
  18. MATLAB读dat文件中存储的十六进制数
  19. 数值分析北航第八题第三次计算实习任务(附百度云源码java版)
  20. 基于LEAP模型的能源环境发展、碳排放建模预测及不确定性分析实践应用

热门文章

  1. 吴恩达:AI的下一个发展方向,从大数据转向小数据
  2. HBase原理(读写流程)
  3. selenium爬取优酷页面并下载图片
  4. oracle dump有条件导出导入,含参数文件导入导出
  5. java url内容加密_java URLEncoder和URLDecoder 网络数据传输加密
  6. 【夜读】越活越年轻的9个好习惯,请让自己养成
  7. 用python3发短信_Python3调用阿里短信api发送短信
  8. 【开发教程6】AI语音人脸识别(会议记录仪/人脸打卡机)-串口
  9. 添加用户并配置读写权限(阁瑞钛伦特软件-九耶实训)
  10. suricata 编译成动态库使用