昨天說(shuō)了 WorkbenchPart 、 EditorPart 、 ViewPart ,以及為什么需要做這樣的抽象,今天就先跳出這么細(xì)粒度的講解,今天先來(lái)看看整個(gè)Flow Designer的整體結(jié)構(gòu)。反正說(shuō)寫(xiě)博客,想到哪里說(shuō)道哪里。
在講正題之前,如果閱讀過(guò)前兩篇的,可以先看看:
Flex開(kāi)發(fā)流程設(shè)計(jì)器的經(jīng)驗(yàn)只談(1):
連接>>>
Flex開(kāi)發(fā)流程設(shè)計(jì)器的經(jīng)驗(yàn)只談(2):
連接>>>
整個(gè)Flow Designer的粗的架構(gòu)如下:
其中“Flex GEF”是真正的Kernel,其內(nèi)部的對(duì)象關(guān)系很多來(lái)源于Eclipse GEF的設(shè)計(jì)思路,當(dāng)然遠(yuǎn)比Eclipse GEF要簡(jiǎn)易很多。
Flex GEF—— 實(shí)現(xiàn)最基礎(chǔ)的Editor接口,維護(hù)Model-EditPart-Figure之間的關(guān)系。
Flex GEF4G—— 在Flex GEF之上實(shí)現(xiàn)一套專(zhuān)門(mén)針對(duì)Graphical的擴(kuò)展
Flex GEF4P—— 在Flex GEF4G之上,實(shí)現(xiàn)一套專(zhuān)門(mén)針對(duì)通用Process描述的擴(kuò)展。這樣Flow Designer則可以將更多的精力和實(shí)現(xiàn)放置于專(zhuān)門(mén)針對(duì)特定Flow視圖展示上。在第一篇介紹的內(nèi)容中,只所以可以顯示兩種視圖,原因就在此。
Flex UI View—— 對(duì)ViewPart的實(shí)現(xiàn),由于Flex本身基類(lèi)中對(duì)圖形化組件支持的非常好了,所有基本上沒(méi)有太復(fù)雜的擴(kuò)展。
Model—— 實(shí)現(xiàn)對(duì)Model接口的聲明,以及對(duì)Model變更的時(shí)候做Notifer響應(yīng)機(jī)制的實(shí)現(xiàn)。
Flex Extention—— 擴(kuò)展了一些Flex Controls和Containers做,來(lái)輔助視圖顯示。
一下是沒(méi)啥用處的個(gè)人隨感廢話(huà),大可不必看:
說(shuō)實(shí)話(huà),這套構(gòu)架完全沒(méi)有任何新穎的地方,也沒(méi)啥特別的。我只是把它按照Eclipse GEF這種思路,在Flex(或者說(shuō)用ActionScript)簡(jiǎn)易化的實(shí)現(xiàn)了一把。
只是一方面我之前對(duì)Eclipse GEF并不熟——雖然網(wǎng)上有很多介紹“如何基于Eclipse GEF開(kāi)發(fā)”文檔和教程,但真正從“底層”來(lái)闡述GEF原理,分析GEF內(nèi)部機(jī)制和真正實(shí)現(xiàn)原理的文章太少。所以不得不一遍遍的翻Eclips GEF/UI方面的源碼,來(lái)尋找正確的設(shè)計(jì)源泉。
另外,目前這套Flex GEF框架還不是很成熟和穩(wěn)定。基本架構(gòu)是在去年12月底構(gòu)建完結(jié)的,也可以說(shuō)初步實(shí)現(xiàn)。前些日子(今年2月初)在用其去實(shí)現(xiàn)上層一個(gè)小模塊的時(shí)候,發(fā)現(xiàn)原有的一些設(shè)計(jì)還有很不足的地方,又做了一些地方的重構(gòu)和調(diào)整。也許還需要更多的Case去檢驗(yàn)其完整性。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

