耦合度多少(低耦合可能会遇到的问题及解决办

作为优秀的开发人员,仅仅依靠框架提供的降低软件耦合的方法是远远不够的。以下一些问题还应当引起注意:
1) 根据可能的变化设计软件
采用责任驱动设计,设计中“低耦合、高内聚”的一个非常重要的前提是软件是不断变化的。如果系统中的某些元素不太可能改变,或者减少耦合的成本太高,当然,应该选择耦合
2)合理的职责划分
合理划分职责,使系统中的对象履行各自的职责,不仅提高了内聚性的要求,还能有效减少耦合。
3)使用接口而不是继承
通过对耦合的分析,我们不难发现,继承就是一种耦合。如果子类A继承了父类B,不论是直接或间接的继承,子类A都必将依赖父类B。子类A必须使用在存在父类B的环境中,父类B不存在子类A就不能使用,这样将影响子类A的可移植性。一旦父类B发生任何变更,更改或去掉一个函数名,或者改变一个函数的参数,都将导致子类A不得不变更,甚至重写。
“低耦合”给软件项目带来的优点是:易于变更、易于重用。
耦合度是指某一模块(类)与其他模块(类)之间的关联、感知和依赖程度。它是一个度量代码独立性的指标,也是一个软件工程设计。耦合的强度取决于以下因素:
1)一个模块对另一个模块的调用;
2)从一个模块传输到另一个模块的数据量;
3)从一个模块到另一个模块的控制量;
4)模块间接口的复杂性
降低耦合度的方法
1)使用更少的类继承和更多的接口来隐藏实现细节。Java面向对象编程引入了接口,除了支持多态性外,隐藏实现细节也是目的之一。
2)模块的功能尽可能的单一,原因也很简单。具有单个函数的模块被其他模块调用的机会更少。
3)遵循一个定义只在一个地方出现。
4)少使用全局变量。
5)类属性和方法的声明少用public,多用private关键字,
6)多用设计模式,比如采用MVC的设计模式就可以降低界面与业务逻辑的耦合度。
7)尽量不用“硬编码”的方式写程序,同时也尽量避免直接用SQL语句操作数据库。
8)最后当然就是避免直接操作或调用其它模块或类(内容耦合);如果模块间必须存在耦合,原则上尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,避免使用内容耦合。


下一篇:没有了
相关文章:


