GEF 框架中的设计模式
2010-06-07 00:00:00 来源:WEB开发网前言
图形编辑框架 (Graphical Editing Framework, GEF) ,是 Eclipse 平台下一个重要的框架,用来从应用模型开发富图形化的编辑器,是 Eclipse RCP 开发者的神兵利器。 GEF 框架涉及大量的概念和技术,有着非常陡峭的学习曲线。本文从设计模式的角度出发,解析 GEF 框架中的关键应用场景,希望能够帮助 Eclipse RCP 开发者更好地理解和应用这一框架。
GEF 通过大量使用设计模式来获取它的灵活性。除了 MVC 模式,GEF 最经常用到的设计模式是命令、工厂、观察者、职责链和状态。
模型-视图-控制器 (Model-View-Controller):MVC 模式被 GEF 用来解除用户界面,行为和表示之间的耦合。模型可以用任意 Java 对象表示,EMF (Eclipse Modeling Framework,Eclipse 建模框架 ) 被普遍使用来构造 GEF 的模型。视图必须实现 IFigure 接口,控制器则必须是 EditPart 类型。
命令 (Command):用来封装对模型的修改,支持 redo、undo 操作。
工厂 (Factory): GEF 框架应用工厂方法模式创建 Figure 应用抽象工厂模式创建 EditPart。
观察者 (Observer):通过观察 EditPart 的激活状态,ConnectionCreationTool 修改待创建连接的连接源。
职责链 (Chain of Responsibility):用来决定请求 (Request) 如何被编辑策略 (EditPolicy) 处理。
状态 (State):对于键盘、鼠标输入,GEF 编辑器通过 Tool 的改变来改变自己的行为。
本文示例代码来自于 GEF 的 3.4.1 版本。
模型-视图-控制器 (Model-view-controller, MVC)
GEF 框架严格遵循模型-视图-控制器模式 (MVC) 。
赞助商链接