[置顶] 欢迎您。今天是2023年03月30日。

高内聚模式(High Cohesion)是GRASP模式中为降低类的复杂程度,简化控制而提出的面向对象设计的原则性模式。高内聚(High Cohesion)与低耦合(Low Coupling)模式是GRASP其他模式的根本。

问题:

怎么做才能降低类的复杂程度,简化控制?

High Cohesion模式所提倡的解决方案:

紧密相关的功能(职责)应该分配给同一个类。

所谓内聚,是指单个物体(类)内部的功能聚集度。比如,只包含有相互关联的功能的类,具有高内聚性,同时,它的外部表现(作用,意图)也就明显;反之,如果一个类由一些不相关的功能构成,它的内聚性就低,它的外部表现就不明显,一方面很难理解它的作用和意图,另一方面,一旦需求变化,扩展性就差。

在现实世界里,高内聚(High Cohesion)表现在“各司其职”上,也就是说自己只干跟自己相关的工作,别人的工作让别人做。比如,电视机只有信息传播的功能,冰箱只有冷藏冷冻的功能,它们就是一个功能高内聚的个体。为什么不把电视机与冰箱的功能做在一起呢?因为做在一起的话,一方面,只需要电视或冰箱功能的消费者却不得不同时购买它们的整合体,而且消费者如果想换代电视机时,冰箱也只有一起换代;另一方面,如果厂家需要升级电视功能,也不得不考虑怎么整合原来的冰箱功能。也就是说功能低内聚的产品,不利于消费者使用,不利于生产者维护,不利于产品本身的升级换代。

同样,反映到软件设计上,低内聚的类存在使用难,维护升级难的缺点。

高内聚(High Cohesion)与低耦合(Low Coupling)是GRASP模式的核心概念,是其它GRASP模式的根本。

优秀的面向对象设计,一般都遵从[高内聚,低耦合]原则。

应用High Cohesion模式的好处:

  1. 聚集相关功能,结构清晰,容易理解
  2. 只聚集相关功能,使得类的职责单一明确,从而降低类的复杂程度,使用简单
您可能也喜欢

GRASP是General Responsibility Assignment Software patterns(通用职责分配软件模式)的简称,它的核心思想是“职责分配(Responsibility Assignment)”。GRASP提出了几个基本原则,用来解决面向对象设计的一些问题。

信息专家模式(Information Expert)是GRASP模式中解决类的职责分配问题的最基本的模式。

创建者模式(Creator)是GRASP模式中解决类的实例的创建职责问题的模式。

二维码
摄像头