GRASP Controller Pattern - GRASP之控制器模式
2007-12-12 22:34Update
控制器模式(Controller)是GRASP模式中解决事件处理职责问题的模式。
问题
在UI层之外,应该由哪个类来处理(控制)系统操作(事件)呢?或者说,当触发一个系统事件时,应该把对事件的处理职责分配给UI层之外的哪个累呢?
Controller模式所提倡的解决方案
把系统事件的处理职责分配给Controller(控制器)类。
担当Controller(控制器)类角色的候补类可能为:
- 系统全体,设备,子系统等的表现类(Facade Controller)
- 系统事件发生的用例的控制类,通常被命名为Handler,Coordinator,Session等(用例或Session的控制器)。整个系统事件都使用同一个控制器。
Controller模式相当于著名的MVC设计模式的C(Controller)部分。
类似于J2EE核心模式中的Front Controller模式(我们会在其它文章中介绍Front Controller模式)。
Controller模式提倡用一个专门的类来处理所有的系统事件。或者说Controller模式把所有系统事件的处理职责分配给一个专门的类集中处理。
应用Controller模式的好处
应用Controller模式的系统,对系统事件进行集中处理,所以:
- 防止同类职责的分散。满足高内聚,低耦合原则。
- 有利于共通处理(前处理,后处理等)。
- 变化的高适应能力。能够把变化的修改范围控制在最小范围(控制器)之内。
Controller模式的应用例
MVC模式。参考:MVC模式 - 写在理解J2EE模式的前篇
- 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 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)