<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Eclipse中GEF和EMF插件設計模式總結

      GEF(Graphical Editor Framework)是一個圖形化編輯框架,它允許開發人員以圖形化的方式展示和編輯模型,從而提升用戶體驗。使用GEF可以方便的實現XML編輯器、UML類圖編輯器等應用程序。

      EMF(Eclipse Modelling Framework)是Eclipse MDA(Model Driven Architecture)的重要組成部分,可以將模型轉換成高效的,正確的,易于定制的Java代碼。

      基于GEF和EMF可以很方便地進行模型驅動開發(Model-Driven Development,MDD),本文在研究生畢業設計中,將GEF和EMF插件結合起來,開發一個基于面向對象Petri網(一種Petri網,Petri網是描述異步的、并發的計算機系統模型的一種數學表示)的圖形化編輯器插件。期間,接觸到了這兩個插件中使用到的一些設計模式,和大家分享一下。

      1. MVC

      GEF使用MVC框架消除模型與視圖之間的耦合:
      (1) Model: 可以用任何Java對象來表示,model必須擁有某種notification機制。
      (2) View: Figure/TreeItems,在典型的GraphicalEditor中,Figure是用于在GraphicalViewer中顯示的Draw2D Figure,而TreeItems用于在Outline中的TreeViewer中顯示信息。
      (3) Controller: 通常對于每個Figure對應一個EditPart,EditPart用于控制模型與視圖,很多修改任務都是通過EditPolicy來實現的。

      2. Command

      GEF中的Command封裝了對模型Model的修改,可以通過繼承GEF中的抽象類Command,提供可Redo/Undo功能,我們主要是在execute()/redo()/undo()中完成業務功能的實現。

      3. Chain of Responsibility

      Chain of Responsibility通過將Request傳遞給多個對象,并給這些對象機會處理請求,從而將請求的發送者和接受者解除耦合。在GEF中,多個EditPolicy可以收到請求,返回Commands,這些Commands以鏈的方式組織在一起。
      另外,以及EMF中的消息分發機制。

      4. State

      允許Graphical Editor在內部狀態發生改變的時候,修改編輯器的行為。對于GEF Editor,用戶切換工具可以改變編輯器的狀態。例如,對于鼠標按下事件,編輯器在激活選區工具和激活創建工具下的行為是截然不同的。詳細請見org.eclipse.gef.Tool接口,AbstractTool定義了幾個state,STATE_xxx.

      5. Abstract Factory

      GEF提供Interface創建一系列相關或相依賴的對象。這個模式在根據模型部件創建編輯部件時被使用。
      GEF中根據EditPartFactory創建不同的EditPart,EMF中提供創建模型元素的工廠類ModelElementFactory。

      6. Factory Method

      定義了方法創建對象,但是允許子類決定實例化的類。這個模式沒有被單獨討論,但是它是創建編輯部件的另一種可選的方法。createChild方法允許你不使用工廠就創建子編輯部件。

      7. Adapter

      GEF的控制器EditPart中的getAdapter(Class key)方法。
      EMF的Notifier-Adapter機制。

      8. Singleton

      Eclipse插件工程的Single plugin instance類AbstractUIPlugin,保證插件運行后只被實例化一次。

      9. Composite

      GEF中的各個顯示圖元composite之間以組合關系存在。
      EMF中復合模型與子模型之間也以組合關系關在。

      10. Observer

      GEF中EditPart作為觀察者被注冊到EMF的模型對象中,監測模型的變化并通知視圖進行更新。

      總結

      通過大量使用設計模式,達到GEF和EMF插件的靈活性和擴展性,便于開發。

      posted on 2011-08-14 12:17  大圓那些事  閱讀(4011)  評論(0)    收藏  舉報

      導航

      主站蜘蛛池模板: 亚洲sm另类一区二区三区| 九九热在线免费视频观看| 人人妻人人澡人人爽欧美一区双 | 免费观看欧美猛交视频黑人| 日本熟妇XXXX潮喷视频| 偷炮少妇宾馆半推半就激情| 久久毛片少妇高潮| 国产一区二区三区不卡视频| 国产亚洲精品久久久久婷婷图片 | 国产成熟女人性满足视频| 国产极品精品自在线不卡| 亚洲欧美日韩综合一区在线| 景洪市| 亚洲一线二线三线品牌精华液久久久| 中国熟妇毛多多裸交视频| 做暖暖视频在线看片免费| 久久综合伊人| 91人妻熟妇在线视频| 青青草国产精品日韩欧美| 东辽县| 亚洲爆乳WWW无码专区| 波多野结衣久久一区二区| 国产精品店无码一区二区三区 | 国产地址二永久伊甸园| 亚洲国产成人精品无色码| 性欧美丰满熟妇xxxx性| 欧洲亚洲精品免费二区| 一 级做人爱全视频在线看| 精品欧美一区二区三区久久久 | 精品国产精品中文字幕| 亚洲 欧美 唯美 国产 伦 综合| 91香蕉国产亚洲一二三区| 久久精产国品一二三产品| 精品无码三级在线观看视频| 国产精品爽爽爽一区二区| 国产精品伦人视频免费看| 色噜噜噜亚洲男人的天堂| 国产成人一区二区三区视频免费| 久久ww精品w免费人成| 色吊丝二区三区中文写幕| 国产精品免费AⅤ片在线观看|