高内聚就是说相关度比较高的部分尽可能的集中,不要分散

低耦合就是说两个相关的模块尽可以能把依赖的部分降低到最小,不要让两个系统产生强依赖

例子:

比如订单系统,订单是跟库存息息相关的,没有库存就没有订单,订单强依赖库存

如果我们把如何扣减库存的逻辑做在订单系统中,那么订单系统和库存系统就耦合了

同样,订单系统中有扣减库存的逻辑会造成订单系统的功能比较分散,订单系统的功能就不够集中

所以我们把订单中的库存逻辑给拆分出来一个独立的库存系统,对外暴露扣减库存的接口,订单系统可以通过这个暴露的库存接口来扣减库存

将订单逻辑与库存逻辑的依赖降低到最小,减掉了订单系统与库存的耦合

同事订单系统只包含订单处理的逻辑,库存系统只包含了库存的处理逻辑,两个系统的业务上更加内聚

转自:https://www.cnblogs.com/vindia/p/7545536.html

如何理解高内聚,低耦合相关推荐

  1. 最简单理解高内聚低耦合

    低耦合: 耦合就是元素与元素之间的连接,感知和依赖量度.这里说的元素即是功能,对象,系统,子系统.模块. 例如:现在有方法A和方法B 我们在A元素去调用B元素,当B元素有问题或者不存在的时候,A元素就 ...

  2. 简单理解高内聚低耦合-高内聚低耦合通俗理解是什么?

    低耦合: 耦合就是元素与元素之间的连接,感知和依赖量度.这里说的元素即是功能,对象,系统,子系统.模块. 例如:现在有方法A和方法B 我们在A元素去调用B元素,当B元素有问题或者不存在的时候,A元素就 ...

  3. 深入理解高内聚,低耦合

    起因:模块独立性指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口简单,两个定性的度量标准――耦合性和内聚性. 耦合性也称块间联系.指软件系统结构中各模块间相互联系紧密程度的一种度量 ...

  4. 怎样理解高内聚低耦合?

    在网上查了很多相关的资料不能更好地去帮我们理解高内聚与低耦合.以我自己的理解总结以下几点: 什么是高内聚: 在我们开发项目中的时候,需要有很多的模块,但模块与模块间肯定会存在相互调用.高内聚指的就是模 ...

  5. 如何理解高内聚低耦合?Java/Android 程序员必看的知识

    推荐阅读: Android MVC设计模式详解 Android 框架MVVM详解 Android MVC设计模式详解 Java/Android 常见的设计模式总结,提高代码重用性和扩展下 概念 耦合性 ...

  6. 软件开发及过程管理——理解高内聚-低耦合

    目录 一. 低耦合(Low Coupling) 二. 哪些是耦合 三. 高内聚-低耦合的作用 3.1 根据可能的变化设计软件 3.2 合理的职责划分 3.3 使用接口而不是继承 四. 设计模式专栏 一 ...

  7. 怎么理解高内聚低耦合

    本文转自:http://www.cnblogs.com/hegezhou_hot/archive/2010/09/18/1830306.html 一.上章回顾 在上篇中我们讲解了几类UML2.0语言新 ...

  8. 如何理解高内聚低耦合

    高内聚就是说相关度比较高的部分尽可能的集中,不要分散 例如内聚性要求强的话就像Windows32中系统提供的API,里面的函数太多了,都放在一个Dll中,那么每个函数完成一个功能.这样强大的功能,会比 ...

  9. c语言如何实现高内聚低耦合_怎么理解高内聚低耦合

    本文转自:http://www.cnblogs.com/hegezhou_hot/archive/2010/09/18/1830306.html 一.上章回顾 在上篇中我们讲解了几类UML2.0语言新 ...

  10. 为什么要高内聚低耦合?

    首先我觉的有必要声明高内聚低耦合是基于面向对象思想的概念,所以撇开面向对象这个基本思想来理解高内聚低耦合可能比较不容易.但是网络上的文章和博客大多只是单纯的以高内聚低耦合来谈高内聚低耦合.本篇博客试图 ...

最新文章

  1. 体制内必须要懂的道理77条
  2. js页面跳转常用的几种方式
  3. 动态代理之Rxjava/Retrofit应用实战
  4. Faster RCNN代码理解(Python) ---训练过程
  5. 如何在html页面遍历对象,Python:如何使用LXML/Requests遍历HTML元素对象?
  6. 前端学习(2600):响应控制
  7. python语言的单行注释以井号开头_python-注释
  8. 张朋——一个血癌患者,他需要我们大家的救助!(附张朋求助网)
  9. 图片保存到数据库和从数据库读取图片并显示(C#)
  10. matlab做神经网络的步骤,matlab建立神经网络模型
  11. STM32F072RB 实作笔记(七)- LCD 1602 的使用
  12. 搭建一个简单的Windows域环境
  13. VMware vmdk文件打开方法
  14. Android Alarm闹钟
  15. matlab矢量场数值可视化(动态数值模拟)
  16. Android视频背景,动态背景,Android用视频做背景的轻松实现
  17. 计算机人才供需状况和就业形势分析,计算机科学与技术就业形势分析
  18. 2.系统发生树构建(非加权分组平均法、邻接法python实现)
  19. VS中报错C4996 怎么办?
  20. 无盘服务器架设之四:iPxe无盘超级应用实例

热门文章

  1. DEJA_VU3D - Cesium功能集 之 070-编辑3Dtiles(平移+旋转)
  2. 【Python】图片视频处理常用操作及方法
  3. 免费ofd在线转PDF
  4. 怎么选型企业客户管理软件?看看别人是怎么做的
  5. 神经网络模型的工作原理,人脑神经网络模型
  6. 一个简洁的layui主题,可以用于旅游网页的制作
  7. linux dpkg: 错误: 无法打开软件包的 info 文件 /var/lib/dpkg/available 以便读取: 没有那个文件或目录
  8. Linux后台开发工具箱
  9. java实现一台电脑控制多台手机_一台电脑控制多部手机怎么实现?
  10. 【CF833D】Red-Black Cobweb