内聚和耦合

以下内容来自《Microsoft .NET企业级应用架构设计

高内聚表示某个特定的软件模块----无论是一个子程序,一个类型还是一个类库,都应完成一系列极为相关的功能。换句话说,内聚表示同一个类型中不同方法,同一个类库中不同函数,同一个方法中不同操作所表达的逻辑之间的距离。

我的理解是你在订单模块中尽量只写有关于订单的代码,不要在里面写关于用户模块的代码。如需要修改用户,你可以调用用于模块的接口完成功能。

Ward Cunningham为内聚给出了一个简洁实用的定义。在他看来,如果修改了模块A,且不会影响到模块B,那么AB这两个模块就有了足够的内聚,值得在系统中使用。

还有一句话,可以用来巩固前面提到的内聚概念。Cunningham建议,模块的内聚的高低程度与其担当的职责多少成反比关系。

 

耦合用来度量两个软件模块,例如,类型,函数或类库之间的依赖程度。耦合的一个非常经典的描述来自Cunninghamwiki若每次修改模块A时都要修改模块B,那么AB者两个模块是耦合的。

低耦合并不是说你的模块应该与其他模块完全隔绝。模块之间显然需要通讯,不过通信应该依赖于一系列设计良好且不易改变的接口。每个模块都应该在无需了解另一个模块内部实现细节的情况下与之良好的配合。

相反的,高耦合会阻碍测试过程,降低代码重用性并影响代码的理解。高耦合也是导致软件易碎,坚硬的一个原因。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值