[置顶] 欢迎您。今天是2023年06月02日。

间接性模式(Indirection)是GRASP模式中解决类的关联问题的模式。

问题:

为了避免类之间的直接关联,应该给什么样的类分配“关联”责任?

Indirection模式所提倡的解决方案:

当多个类之间存在复杂的消息交互(关联)时,Indirection模式提倡类之间不直接进行消息交互处理(非直接),而是导入第三方类,把责任(多个类之间的关联责任)分配给第三方类,降低类之间的耦合程度。

应用Indirection模式的好处:

  1. 高内聚。通过把“关联”的功能分散到第三方类,原来的类可以更加关注自身功能的实现。
  2. 低耦合。原本关联类之间不直接关联,降低类之间的耦合性。
  3. 高重用性。第三方类对“关联”功能的集中处理,与原来的类对自身功能的专注,有利于类的重用。

Indirection模式的应用例

应用Indirection模式的一个最好范例是GoF的Mediator(中介者)模式。

您可能也喜欢

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

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

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

二维码
摄像头