低耦合模式(Low Coupling)是GRASP模式中为降低类之间的关联程度,适应可变性而提出的面向对象设计的原则性模式。高内聚(High Cohesion)与低耦合(Low Coupling)模式是GRASP其他模式的根本。
问题:
怎么做才能降低类之间关联程度,能适应需求的变化呢?
Low Coupling模式所提倡的解决方案:
为类分配职责时,应该尽量降低类之间的关联关系(耦合性)。亦即,应该以降低类之间的耦合关系作为职责分配的原则。
所谓耦合,是指多个物体(类)之间的物理或者意思上的关联程度。在面向对象方法中,类是最基本的元素,耦合主要指不同类之间相互关联的紧密程度。面向对象里的关联,主要指一个类对另一个类的调用,聚合(包含),参数传递等关系。
比如,所谓2个关联得非常紧密的类(高耦合),是指其中一个类发生变化(修改)时,另一个类也不得不跟着发生变化(修改)。
面向对象设计要求类之间满足“低耦合”原则,它是衡量一个设计是否优良的的一个重要标准,因为“低耦合”有助于使得系统中某一部分的变化对其它部分的影响降到最低程度。
应用High Cohesion模式的好处:
- 独立性,有利于重用。
- 适应需求变化,一旦发生变化时,可以把影响缩小到最小范围。
高内聚(High Cohesion)与低耦合(Low Coupling)是GRASP模式的核心概念,是其它GRASP模式的根本。
优秀的面向对象设计,一般都遵从[高内聚,低耦合]原则。
内聚与耦合的辩证关系:
- 一方面,高内聚要求把紧密关联的功能(职责)聚集在同一个类中,防止功能的扩散和类的无谓增加,从而减少类之间的关联,降低类之间的发生耦合的机率。
- 另一方面,高内聚要求把不相关的功能分散到不同的类,类增加了,势必造成相互关联类的增加,从而增大类之间发生耦合的机率。
面向对象设计,应该考虑效率,实现难度等因素,同时兼顾高内聚(High Cohesion)与低耦合(Low Coupling)性。
最新评论