低耦合概述

简介: 低耦合概述

低耦合

耦合指的两个系统(模块)联系紧密。共7种,除掉无直接耦合和高级语言不存在的内容耦合,共5种。耦合从低到高,分别是:数据耦合、标记耦合、控制耦合、外部耦合、公共耦合。


数据耦合两例

JiSuan(5, 3);


CGouMaiXinXi gouMai = new CGouMaiXinXi();


//...


JiSuan(gouMai);


标记耦合六例

参数是json字符串,如:{"价格":10,"数量":1}


参数为文件名,文件格式是调用方和被调用方约定的。


C#带参数的线程函数,函数的入口参数为object类型;C++的线程入口函数,参数为LPVOID。


调用Com。


halcon的HTuple


_variant_t和VARIANT


控制耦合

移动(方向)


外部耦合

共用一个静态成员变量或全局变量。


公共耦合

访问同一片内存区域。


内容耦合4例

Window2000和Window98,C语言可以直接操作显示内存指针,来改变控制台内容。至少有10%的几率会让操作系统崩溃。


hook技术用于监控软件。


破解软件、逆向工程。


游戏修改,外挂。


各种耦合优缺点



耦合名称

优缺点

数据耦合

如果结构发生变化,编译的时候,就能发现错误。

标记耦合

如果结构发生变化,运行时才能发现错误。

控制耦合

控制耦合,大幅降低可测试性。

外部耦合

不知道会有多少个模块访问,所以确定性弱。相对公共耦合,可以通过访问权限(public、private等)减少风险

公共耦合

不知道会有多少个模块访问,确定性弱。

公共耦合与标记耦合的区别:后者只会在参数、返回值使用共同资源。

耦合只是一方面,具体情况具体分析。比如:标记耦合大大增加了灵活性和互操作性,所以常常用于系统间通信。外部耦合,大大降低了代码量,非常适合于一些质量要求不高的小工具。公共耦合适合的性能要求高的模块,即使是性能要求高的系统,绝大部分模块的性能要求并不高。


相关文章
|
设计模式 算法 程序员
设计模式的概述及各个模式的功能介绍
设计模式的概述及各个模式的功能介绍
119 0
|
1天前
|
消息中间件 供应链 架构师
微服务如何实现低耦合高内聚?架构师都在用的技巧!
本文介绍了微服务的拆分方法,重点讲解了“高内聚”和“低耦合”两个核心设计原则。高内聚强调每个微服务应专注于单一职责,减少代码修改范围,提高系统稳定性。低耦合则通过接口和消息队列实现服务间的解耦,确保各服务独立运作,提升系统的灵活性和可维护性。通过领域建模和事件通知机制,可以有效实现微服务的高效拆分和管理。
15 7
|
4月前
软件复杂度问题之什么是高内聚低耦合设计,实现一个高内聚低耦合的接口该如何解决
软件复杂度问题之什么是高内聚低耦合设计,实现一个高内聚低耦合的接口该如何解决
|
6月前
模块功能高内聚低耦合
模块功能高内聚低耦合
56 1
|
12月前
|
设计模式 网络协议 测试技术
你的代码是否按照高内聚、低耦合的原则来设计的?
你的代码是否按照高内聚、低耦合的原则来设计的?
|
设计模式 数据可视化 程序员
设计模式概述、UML图、软件设计原则
设计模式概述 软件设计模式的产生背景 "设计模式"最初并不是出现在软件设计中,而是被用于建筑领域的设计中。 1977年美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫·亚历山大(Christopher Alexander)在他的著作《建筑模式语言:城镇、建筑、构造》中描述了一些常见的建筑设计问题,并提出了 253 种关于对城镇、邻里、住宅、花园和房间等进行设计的基本模式。 1990年软件工程界开始研讨设计模式的话题,后来召开了多次关于设计模式的研讨会。直到1995 年,艾瑞克·伽马(ErichGamma)、理査德·海尔姆(Richard Helm)、拉尔夫·约翰森(Ra
70 0
|
设计模式 JavaScript 前端开发
设计原则-设计模式总览
设计原则-设计模式总览
63 0
|
设计模式 uml
设计模式——概述、UML图、原则(二)
设计模式——概述、UML图、原则
181 0
设计模式——概述、UML图、原则(二)
|
设计模式 数据可视化 程序员
设计模式——概述、UML图、原则(一)
设计模式——概述、UML图、原则
197 0
设计模式——概述、UML图、原则(一)
|
设计模式 算法
设计原则以及设计模式概览
设计原则以及设计模式概览