随笔 - 5  文章 - 0  trackbacks - 0
<2007年9月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用链接

留言簿(1)

随笔分类

随笔档案

文章分类

文章档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜

与Eclipse Platform类似,Eclipse GEF通过大量使用设计模式来得到它的灵活性和扩展性。下面总结以下经常碰到的模式的小结。
1. MVC
与其他图形框架类似,GEF使用MVC来消除UI之间的耦合。
(1)Model:可以用任何Java对象来表示,model必须拥有某种notification机制。
(2)Views: Figure/TreeItems, 在典型的GraphicalEditor中,Figure是用于在GraphicalViewer中显示的Draw2D Figure,而TreeItems用于在Outline中的TreeViewer中显示信息。
(3)Controller(EditPart):通常对于每个Figure对应一个EditPart,EditPart用于修改,很多修改任务都是通过EditPolicy来实现的。
2.Command
Command封装了Model的修改,可以通过继承GEF中的抽象类Command,提供可Redo/Undo功能,我们主要是在execute()/redo()/undo()中完成业务功能的实现。
3. Chain of Responsibility
Chain of Responsibility通过将Request传递给多个对象,并给这些对象机会处理请求,从而将请求的发送者和接受者解除耦合。在GEF中,多个EditPolicy可以收到请求,返回Commands,这些Commands以链的方式组织在一起。
4. State
允许Graphical Editor在内部状态发生改变的时候,修改编辑器的行为。对于GEF Editor,用户切换工具可以改变编辑器的状态。例如,对于鼠标按下事件,编辑器在激活选区工具和激活创建工具下的行为是截然不同的。详细请见org.eclipse.gef.Tool接口,AbstractTool定义了几个state,STATE_xxx.
5. Abstract Factory
提供Interface创建一系列相关或相依赖的对象。这个模式在根据模型部件创建编辑部件时被使用。
6. Factory Method
定义了方法创建对象,但是允许子类决定实例化的类。这个模式没有被单独讨论,但是它是创建编辑部件的另一种可选的方法。createChild方法允许你不使用工厂就创建子编辑部件。

posted on 2007-09-02 16:34 潮水的诺言 阅读(737) 评论(0)  编辑  收藏 所属分类: Eclipse GEF/EMF/GMF

只有注册用户登录后才能发表评论。


网站导航: