GEF与设计模式

与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方法允许你不使用工厂就创建子编辑部件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值