说说耦合(coupling)
来源:互联网 发布:潭州学院java vip视频 编辑:程序博客网 时间:2024/05/18 15:53
coupling, 即两个东西之间的一种连接,使他们彼此关联。
以前大学里学软件工程和面向对象的时候,就时常听到解耦和低耦合,所以现在在做开发的时候,也往往会去想,怎么降低耦合度呢。
软件工程书籍中,这么写道,高内聚及低耦合可以给我们软件开发人员带来可读性、复用性、可维护性和易变更性。
耦合天成
软件开发过程中,耦合是不可避免的,除非做出来一个超级巨大,包含一切功能的类/模块,都放在里面做(这显然并不是高内聚,只是把乱七八糟的揉在一起),否则模块与模块之间必然存在一定的耦合。
既然耦合不可避免,那高耦合和低耦合,又会对开发和维护产生什么影响呢?
高耦合,也就意味着两者之间存在强的关联,比如强持有、双向依赖、多个变量/常量的互相访问,如此也就造成其中一个需要更改的时候,另一个类也需要大量更改,而在Runtime的领域,则可能发生其中一个导致另一个不能释放。尤其实际生产过程中,往往不只是两个类有耦合关系,会有更多的类,从而产生一条耦合链。
低耦合,即两者之间关联较弱,比如广播,dataflow架构,单向单依赖等等。组合优于继承这个说法,也是从业务模型的角度,组合有时候相对于继承降低了耦合。
耦合的代价
高耦合的代价,从开发人员角度来说,会导致
- 维护困难:因为各种逻辑揉在一起,互相之间依赖来依赖去,查问题的时候很难定位。
- 变更困难:由于关联太强,修改一个小需求却要改很多逻辑
- 难以复用:新开发的功能用到了相同的逻辑,但是只能复制黏贴过去。比较常见的一个例子就是应该在utils里的东西却在业务代码里。
- 可读性差:过一阵子自己看,或者换了负责人员后,很难读懂原来的逻辑
低耦合的代价,则可能会需要付出性能、代码行数、更多的时间去设计和解耦。
0 0
- 说说耦合(coupling)
- 模块的耦合性(Coupling)
- 松耦合(Loose coupling)笔记
- Atitit 深入理解耦合Coupling的原理与attilax总结
- 耦合
- 耦合
- 耦合
- 耦合
- 耦合
- 耦合
- 耦合
- 耦合
- 耦合
- Coupling and Cohesion
- Cohesion and Coupling
- Coupling and Cohesion 2
- choose AC-Coupling
- PMD规则之Coupling Rules
- 使用Category 重写frame
- 5. jQuery 效果 - 隐藏和显示
- windows7下安装ubuntu及相关问题的解决方案
- CodeForces 447C###C. DZY Loves Sequences
- Linux netlink机制及示例
- 说说耦合(coupling)
- Ubuntu无法进入mysql,报ERROR 2002 (HY000): Can't connect to local MySQL server through socket …错误
- intel驱动包下载
- java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
- Mapped Statements collection does not contain value for xxxxxxx
- mysql挿入数据中文乱码问题
- hdu5296(倍增lca)
- poj 3009 DFS +回溯
- eclipse less编译时错误处理