GRASP High Cohesion Pattern - GRASP之高内聚模式
2007-12-12 22:30Update
高内聚模式(High Cohesion)是GRASP模式中为降低类的复杂程度,简化控制而提出的面向对象设计的原则性模式。高内聚(High Cohesion)与低耦合(Low Coupling)模式是GRASP其他模式的根本。
问题
怎么做才能降低类的复杂程度,简化控制?
High Cohesion模式所提倡的解决方案
紧密相关的功能(职责)应该分配给同一个类。
所谓内聚,是指单个物体(类)内部的功能聚集度。比如,只包含有相互关联的功能的类,具有高内聚性,同时,它的外部表现(作用,意图)也就明显;反之,如果一个类由一些不相关的功能构成,它的内聚性就低,它的外部表现就不明显,一方面很难理解它的作用和意图,另一方面,一旦需求变化,扩展性就差。
在现实世界里,高内聚(High Cohesion)表现在“各司其职”上,也就是说自己只干跟自己相关的工作,别人的工作让别人做。比如,电视机只有信息传播的功能,冰箱只有冷藏冷冻的功能,它们就是一个功能高内聚的个体。为什么不把电视机与冰箱的功能做在一起呢?因为做在一起的话,一方面,只需要电视或冰箱功能的消费者却不得不同时购买它们的整合体,而且消费者如果想换代电视机时,冰箱也只有一起换代;另一方面,如果厂家需要升级电视功能,也不得不考虑怎么整合原来的冰箱功能。也就是说功能低内聚的产品,不利于消费者使用,不利于生产者维护,不利于产品本身的升级换代。
同样,反映到软件设计上,低内聚的类存在使用难,维护升级难的缺点。
高内聚(High Cohesion)与低耦合(Low Coupling)是GRASP模式的核心概念,是其它GRASP模式的根本。
优秀的面向对象设计,一般都遵从[高内聚,低耦合]原则。
应用High Cohesion模式的好处
- 聚集相关功能,结构清晰,容易理解
- 只聚集相关功能,使得类的职责单一明确,从而降低类的复杂程度,使用简单
- 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 Low Coupling Pattern - GRASP之低耦合模式 - (2007-12-12 22:32)
- GRASP Creator Pattern - GRASP之创建者模式 - (2007-12-12 22:28)
- GRASP Information Expert Pattern - Grasp之信息专家模式 - (2007-12-11 21:57)
- 面向对象设计的原则指南 – 概要篇 - (2007-12-10 22:06)