低耦合概述

        1. 低耦合

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

          1. 数据耦合两例

JiSuan(5, 3);

CGouMaiXinXi gouMai = new CGouMaiXinXi();

//...

JiSuan(gouMai);

          1. 标记耦合六例

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

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

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

调用Com。

halcon的HTuple

_variant_tVARIANT

          1. 控制耦合

移动(方向)

          1. 外部耦合

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

          1. 公共耦合

访问同一片内存区域。

          1. 内容耦合4例

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

hook技术用于监控软件。

破解软件、逆向工程。

游戏修改,外挂。

          1. 各种耦合优缺点

耦合名称

优缺点

数据耦合

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

标记耦合

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

控制耦合

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

外部耦合

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

公共耦合

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

闻缺陷则喜何志丹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值