这部分转自:http://hi.baidu.com/wangyuquansky/blog/item/adb07e2a1f70c09f033bf683.html 略有修改
内聚与耦合的两个概念.
1.内聚(Cohesion)是一个模块内部各成分之间相关联程度的度量。
2.耦合(Coupling)是模块之间依赖程度的度量。内聚和耦合是密切相关的,与其它模块存在强耦合的模块通常意味着弱内聚,而强内聚的模块通常意味着与其它模块之间存在弱耦合。
模块设计追求高内聚,低耦合。
耦合的强度依赖于以下几个因素:
(1)一个模块对另一个模块的调用;
(2)一个模块向另一个模块传递的数据量;
(3)一个模块施加到另一个模块的控制的多少;
(4)模块之间接口的复杂程度。
目的就是追求 高内聚 低耦合。
简单工厂模式更像是一个倒放的漏斗(上尖下宽),特点是“入口”单一,也就是输入简单(例如客户端承担的事情会等单一)
策略模式更像是一个正放的漏斗(上宽下尖),“入口”大,可以允许多种多样的“东西”进入,但是出口单一,这就要求输入的“东西”完成的工作相同,但实现不同。
而二者的结合 即简化了输入,又同时实现了策略模式的功能。
另外又看到了一个文章也不错
http://hi.baidu.com/wookoo/blog/item/b49f1ac7f89d87ded1006097.html