`
teleyic
  • 浏览: 23960 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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

分享到:
评论

相关推荐

    界面设计GEF应用实例

    1. **模型-视图-控制器(MVC)**:GEF基于MVC设计模式,模型存储图形数据,视图负责显示,控制器处理用户交互。 2. **编辑领域(EditPart)**:编辑领域是GEF中的核心组件,它将模型与视图关联起来,处理用户交互和...

    GEF教程及demo源码GEF_RCP_DEMO.zip

    GEF遵循MVC设计模式,将业务逻辑、界面展示和用户交互分离,使得代码结构清晰,易于维护和扩展。 3. **图形组件与布局管理** 在SWT中,开发者可以使用各种图形组件(如Composite、Button等)创建用户界面,并通过...

    Eclipse的GEF学习

    GEF遵循经典的MVC(Model-View-Control)架构,这一设计模式使得模型、视图和控制器各司其职,减少了各组件间的耦合度,提高了系统的可维护性和灵活性。 #### 二、GEF的关键组件解析 1. **模型(Model)**:模型是...

    GEF Example Source Code

    - **模型-视图-控制器(MVC)**:理解GEF如何实现MVC设计模式,以及如何将数据模型与图形视图绑定。 - **事件处理**:学习如何监听和响应用户交互,如点击、拖放、键盘输入等。 - **撤销/重做(Undo/Redo)**:了解...

    GEF_Demo_Code20170307

    它的核心功能包括图形绘制、手势识别、对象编辑等,为开发者提供了丰富的API和设计模式,使得创建复杂的图形编辑应用变得简单。 1. **适配器(Adapter)扩展点**:在Eclipse插件开发中,适配器是一种常见的设计模式...

    GEF入门系列 pdf 格式资料

    - **模型-视图-控制器(MVC)**:GEF基于MVC设计模式,将图形元素的逻辑(模型)、显示(视图)和交互(控制器)分离,实现了高度可定制化和可扩展性。 - **Part和EditPart**:Part代表工作台上的一个独立组件,...

    GEF-SDK-3.7.0

    1. **模型-视图-控制器(MVC)架构**:GEF遵循MVC设计模式,分离了数据模型、视图显示和用户交互控制,使得代码组织清晰,易于维护。 2. **图形绘制与布局**:GEF提供了一套图形绘制API,支持基本形状、连接线、...

    GEF-SDK-3.6.2 jar

    1. **模型-视图-控制器(MVC)架构**:GEF遵循MVC设计模式,将数据模型、视图呈现和用户交互控制分离,使得代码结构清晰,易于维护和扩展。 2. **图形对象和图形节点**:GEF提供了图形对象和图形节点的概念,使得...

    GEF入门必读 GEF入门系列 GEF-whole-upload

    4. **模型与视图**:探讨如何使用MVC模式来分离业务逻辑和显示逻辑,以及如何实现模型与视图的同步更新。 5. **图层管理**:说明如何组织图形元素的层次结构,控制它们的显示顺序和可见性。 6. **命令系统**:介绍...

    GEF 可用的6个demo

    2. **模型-视图-控制器(MVC)设计模式**:GEF基于MVC模式,模型负责存储数据,视图负责呈现数据,而控制器处理用户交互。通过分析DEMO,我们可以深入理解这种设计模式的应用。 3. **图形元素**:GEF支持创建各种...

    GEF 进阶+源码.rar

    1. **模型-视图-控制器(MVC)架构**:GEF遵循MVC设计模式,将图形界面的逻辑分离为模型(Model)、视图(View)和控制器(Controller)三部分,使得代码更易于维护和扩展。 2. **图元工厂(Figure Factory)**:...

    GEF典型实现例子

    1. **模型-视图-控制器(MVC)**:GEF基于MVC设计模式,模型存储数据,视图负责显示,控制器处理用户交互。 2. **图形编辑部件(Parts)**:这是GEF的核心组件,包括图形编辑区(EditPart)、图形对象(Figure)和...

    GEF教程

    此外,GEF框架还充分利用了诸如MVC(Model-View-Controller)架构等经典设计模式,确保了代码的清晰性和可维护性。 #### GEF入门挑战与策略 面对GEF框架的学习门槛,正确的学习策略至关重要。作者在“八进制”Blog...

    GEF 3.10 eclipse 插件

    1. **模型视图控制器(MVC)架构**:GEF 3.10采用MVC设计模式,将模型、视图和控制器分离,提高了代码的可维护性和可重用性。 2. **图元工厂(Figure Factory)**:提供了丰富的图元资源,用于创建图形元素,如线条...

    GEF框架入门学习

    这是我自己在学习GEF的时候做的一些总结。 1、GEF中的概念比如Command,Tool,Request等等。 2、GEF中使用到的几种设计模式。 3、GEF中对鼠标键盘事件处理的机制、流程。

    GEF-Update-3.7.1.zip

    GEF提供了丰富的API和设计模式,如MVC(模型-视图-控制器)、Command模式和AdapterManager,以支持图形元素的创建、编辑和交互。 在3.7.1版本中,GEF可能包含了对性能的优化、API的改进、新特性的添加以及已知问题...

    GEF理解系列三

    这种设计模式使得操作具有可撤销/重做能力,并能保持模型与视图的一致性。 在GEF中,EditPart是图形元素的表示,它们负责绘制图形并响应用户交互。EditPart可以通过`createEditPolicies()`方法安装所需的Policy。...

    java gef开发实例

    在本实例中,我们将探讨如何利用GEF实现一个简单的MVC(Model-View-Controller)架构,这是一种常见的软件设计模式,用于分离应用程序的数据、显示逻辑和用户交互。 1. **GEF框架基础**: - **模型(Model)**:...

    GEF开发整合资料大全

    在实际开发中,首先要理解模型-视图-控制器(MVC)的设计模式,这是GEF的基础。然后,你需要创建模型类,定义图形元素的数据结构;接着,编写EditPart和Figure,实现视图的绘制和用户交互;最后,利用Command来实现...

Global site tag (gtag.js) - Google Analytics