日期:2014-05-20  浏览次数:20916 次

关于开发理论的回帖整理之三
问题:新手正在学习设计思想, 想问: 高耦合和低内聚是对立(矛盾)的两面吗?还是两样不同的东西? 
例如,如果说某个设计思路符合高内聚思想了,是否就意味着同时也符合低耦合了?
详见:http://topic.csdn.net/u/20100108/01/228cf004-4f02-45db-b019-a9308a0e360f.html

我的回答:
1、耦合、内聚的评估标准是强度,耦合越弱越好,内聚越强越好; 
2、所谓过度指的是由于错误理解导致的效果相反的设计; 
3、耦合指的模块之间的关系,最弱的耦合设计是通过一个主控模块来协调n个模块之间的运作。还是举一个我举过的例子:客户要求在界面上增加一个字段,你的项目要修改几个地方呢?如果你只要修改项目文档,那么你的开发构架就是最低强度的耦合,而这种设计 成熟的开发团队都已经做到了,他们使用开发工具通过项目模型驱动数据库和各层次的代码,而不是直接修改那些代码; 
4、内聚指的是模块内部的功能,最强的内聚就是功能单一到不能拆分,也就是原子化, 
5、所以强内聚和弱耦合是相辅相成的,一个良好的设计是由若干个强内聚模块以弱耦合的方式组装起来的

------解决方案--------------------
不错!学习
------解决方案--------------------
说得的确不错!!
但实际一个项目最初的框架是笼统的!!
往往实现以后用户会提出各方面的修改,有些是比较巨大的修改!!
而这种修改又往往会和整个架构有所冲突!!
也就是说很难做到或者说不可做到能楼主所说的那种理想化程度!!
------解决方案--------------------
高内聚、低耦合是 OO 设计的目标,这样做为了更好滴应对变化!

为了更好滴应对需求变化,OO 设计有很多相应的原则需要遵守!

很多项目只是一味滴 Coding,将所有对象堆砌到一起,最后还说是三层架构!
——不过是一堆散发恶臭的代码怪物,当然俺也制造过许多大怪兽,哈哈!
------解决方案--------------------
顶~
------解决方案--------------------
up
------解决方案--------------------

------解决方案--------------------

------解决方案--------------------
up
------解决方案--------------------
顶 学习了
------解决方案--------------------
学习下
------解决方案--------------------

------解决方案--------------------

------解决方案--------------------
up
------解决方案--------------------
UP
------解决方案--------------------
随便 学习下...
------解决方案--------------------
看看
------解决方案--------------------
学习下
------解决方案--------------------
up
------解决方案--------------------
[b][/b]