GRASP Indirection Pattern - GRASP之间接性模式
2007-12-12 22:36Update
间接性模式(Indirection)是GRASP模式中解决类的关联问题的模式。
问题
为了避免类之间的直接关联,应该给什么样的类分配“关联”责任?
Indirection模式所提倡的解决方案
当多个类之间存在复杂的消息交互(关联)时,Indirection模式提倡类之间不直接进行消息交互处理(非直接),而是导入第三方类,把责任(多个类之间的关联责任)分配给第三方类,降低类之间的耦合程度。
应用Indirection模式的好处
- 高内聚。通过把“关联”的功能分散到第三方类,原来的类可以更加关注自身功能的实现。
- 低耦合。原本关联类之间不直接关联,降低类之间的耦合性。
- 高重用性。第三方类对“关联”功能的集中处理,与原来的类对自身功能的专注,有利于类的重用。
Indirection模式的应用例
应用Indirection模式的一个最好范例是GoF的Mediator(中介者)模式。参考:设计模式之Mediator - 中介者模式[GoF]
- 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 Controller Pattern - GRASP之控制器模式 - (2007-12-12 22:34)
- GRASP Low Coupling Pattern - GRASP之低耦合模式 - (2007-12-12 22:32)
- GRASP High Cohesion Pattern - GRASP之高内聚模式 - (2007-12-12 22:30)
- GRASP Creator Pattern - GRASP之创建者模式 - (2007-12-12 22:28)
- GRASP Information Expert Pattern - Grasp之信息专家模式 - (2007-12-11 21:57)
- 面向对象设计的原则指南 – 概要篇 - (2007-12-10 22:06)