间接性模式(Indirection)是GRASP模式中解决类的关联问题的模式。
问题:
为了避免类之间的直接关联,应该给什么样的类分配“关联”责任?
Indirection模式所提倡的解决方案:
当多个类之间存在复杂的消息交互(关联)时,Indirection模式提倡类之间不直接进行消息交互处理(非直接),而是导入第三方类,把责任(多个类之间的关联责任)分配给第三方类,降低类之间的耦合程度。
应用Indirection模式的好处:
- 高内聚。通过把“关联”的功能分散到第三方类,原来的类可以更加关注自身功能的实现。
- 低耦合。原本关联类之间不直接关联,降低类之间的耦合性。
- 高重用性。第三方类对“关联”功能的集中处理,与原来的类对自身功能的专注,有利于类的重用。
Indirection模式的应用例
应用Indirection模式的一个最好范例是GoF的Mediator(中介者)模式。
最新评论