xdingding  
          日歷
          <2005年12月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567
          統計
          • 隨筆 - 26
          • 文章 - 0
          • 評論 - 35
          • 引用 - 0

          導航

          常用鏈接

          留言簿(11)

          我參與的團隊

          隨筆分類

          隨筆檔案

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 31793
          • 排名 - 1336

          最新評論

          閱讀排行榜

          評論排行榜

           
           

          GEF學習筆記(二) 模擬GEF設計思路,解剖GEF 1

           

          GEF如同其他的一些framework一樣,是一個復雜龐大(有點夸張)的,當我們想使用駕馭它時,就必須全面的理解其整體構架及其運作過程。這需要我們的毅力和敏銳。旅途開始了….


           

          GEF主要的任務是針對2D圖形編輯操作,如下圖。

           

           

           

          為了使GEF能夠廣泛的用于種類繁多2D圖形編輯領域,GEF就必須建立一個嚴格的易擴充/易組合/易重用的MVC框架(當然這種分解細化功能對象的方法思想,我們可以用在其它的地方,其它領域、其他語言如C#上)。

           

           

           

          那么如果設計 這個 嚴格的MVC框架(對于Model是嚴格的獨立,它不依賴與ViewController) 以及 此框架 如何 達到 易擴充/易組合/易重用 的特性。下面我按照自己拙劣的思路,以麻雀之眼度鴻雁之志啦

           

          對于MVC

          View部分:GEF理所當然要使用自家的東東Draw2D。利用Draw2DFiguer作為自己的View

          Model部分:往往內部包含了千差萬別、不可預知的商業信息。因此、GEF框架應該盡量減少約束(在下面將詳細說明約束)。

          Controller部分:EditPart/Draw2DFigure/Model這三個樹狀對象模型,在EditPart中將建立了與其對應的Draw2DFigure/Model結點 建立一一關聯的關系。

           

          這樣產生的構架如下:

           

           

           

           

           

           

          思考:

          為什么Controller要同View一樣采用樹狀結構呢?

          Controller以樹狀的形式存在,這樣便于功能分解(這個道理有點像 在類設計中 復合優于繼承 一般)

          這樣每一結點的Controller(EditPart) 僅需要處理

          • 自身邏輯功能
          • 管理子Controller
          • 必要時通知父Controller

          尤其當用戶需要在圖形界面編輯界面中,需要使用多種不同UI行為規則的2D元素(例如不同的形狀塊,不同行為的連線等)組合來完成工作時(例如類似Visio這樣的界面),這種構架的優勢就顯露無疑。

           

          未完待續….(下面要探討如何產生上述三個樹狀模型等)

          posted on 2005-12-05 13:53 般若菩提 閱讀(2342) 評論(0)  編輯  收藏 所屬分類: GEF源碼分析
           
          Copyright © 般若菩提 Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 舞阳县| 靖州| 慈利县| 五峰| 临颍县| 安化县| 色达县| 仲巴县| 仙游县| 汤阴县| 什邡市| 天台县| 长汀县| 通河县| 新竹市| 图木舒克市| 淄博市| 柏乡县| 武鸣县| 岱山县| 手游| 崇明县| 牟定县| 秦皇岛市| 塔河县| 崇义县| 岑溪市| 鸡泽县| 乡宁县| 灌云县| 黄浦区| 五原县| 霍州市| 辽宁省| 年辖:市辖区| 滦南县| 太谷县| 达日县| 施秉县| 高唐县| 太保市|