GRASP Low Coupling Pattern - GRASP之低耦合模式
2007-12-12 22:32Update
低耦合模式(Low Coupling)是GRASP模式中为降低类之间的关联程度,适应可变性而提出的面向对象设计的原则性模式。高内聚(High Cohesion)与低耦合(Low Coupling)模式是GRASP其他模式的根本。
问题
怎么做才能降低类之间关联程度,能适应需求的变化呢?
Low Coupling模式所提倡的解决方案
为类分配职责时,应该尽量降低类之间的关联关系(耦合性)。亦即,应该以降低类之间的耦合关系作为职责分配的原则。
所谓耦合,是指多个物体(类)之间的物理或者意思上的关联程度。在面向对象方法中,类是最基本的元素,耦合主要指不同类之间相互关联的紧密程度。面向对象里的关联,主要指一个类对另一个类的调用,聚合(包含),参数传递等关系。
比如,所谓2个关联得非常紧密的类(高耦合),是指其中一个类发生变化(修改)时,另一个类也不得不跟着发生变化(修改)。
面向对象设计要求类之间满足“低耦合”原则,它是衡量一个设计是否优良的的一个重要标准,因为“低耦合”有助于使得系统中某一部分的变化对其它部分的影响降到最低程度。
应用High Cohesion模式的好处
- 独立性,有利于重用。
- 适应需求变化,一旦发生变化时,可以把影响缩小到最小范围。
高内聚(High Cohesion)与低耦合(Low Coupling)是GRASP模式的核心概念,是其它GRASP模式的根本。
优秀的面向对象设计,一般都遵从[高内聚,低耦合]原则。
内聚与耦合的辩证关系
1,一方面,高内聚要求把紧密关联的功能(职责)聚集在同一个类中,防止功能的扩散和类的无谓增加,从而减少类之间的关联,降低类之间的发生耦合的机率。
2,另一方面,高内聚要求把不相关的功能分散到不同的类,类增加了,势必造成相互关联类的增加,从而增大类之间发生耦合的机率。
面向对象设计,应该考虑效率,实现难度等因素,同时兼顾高内聚(High Cohesion)与低耦合(Low Coupling)性。
- Relative Articles
- GRASP设计模式 - 概要篇 - (2007-12-16 19:59)
- GRASP Protected Variations Pattern - GRASP之变化预防模式 - (2007-12-13 20:32)
- GRASP Pure Fabrication Pattern - GRASP之纯虚构模式 - (2007-12-13 20:27)
- GRASP Polymorphism Pattern - GRASP之多态性模式 - (2007-12-13 20:24)
- GRASP Indirection Pattern - GRASP之间接性模式 - (2007-12-12 22:36)
- GRASP Controller Pattern - GRASP之控制器模式 - (2007-12-12 22:34)
- GRASP High Cohesion Pattern - GRASP之高内聚模式 - (2007-12-12 22:30)
- GRASP Creator Pattern - GRASP之创建者模式 - (2007-12-12 22:28)
- GRASP Information Expert Pattern - Grasp之信息专家模式 - (2007-12-11 21:57)
- 面向对象设计的原则指南 – 概要篇 - (2007-12-10 22:06)