BUIW 介绍
在BUIW中采用了MVC的設(shè)計模式(圖10-3),MVC(Model /View/Controller)是程序開發(fā)中經(jīng)常使用的一種模式,它很好地實現(xiàn)了數(shù)據(jù)層與表示層的分離。MVC把應(yīng)用程序分為三種對象類型:模型,維護數(shù)據(jù)并提供數(shù)據(jù)訪問方法;視圖,繪制模型的部分數(shù)據(jù)或所有數(shù)據(jù)的可視圖;控制器處理事件。視圖事先會在模型中登記,當模型數(shù)據(jù)發(fā)生改變時,馬上通知已向此模型登記的每個視圖。視圖從模型取得最新的數(shù)據(jù)并刷新自己。
Widgets在互聯(lián)網(wǎng)上是一種時髦的技術(shù),而在這里,Widgets是一個插件式可擴展的UI組件框架,是窗口化的應(yīng)用框架,并引入了容器的概念,實際上,容器是一類特殊的widget。 Model 提供了驅(qū)動widget內(nèi)容的實際數(shù)據(jù),管理Listener的注冊行為,而并不關(guān)注數(shù)據(jù)的可視化表達。有點像STL,不同的model支持不同的數(shù)據(jù)類型例如鏈表,向量組等,也支持特定控件或接口的數(shù)據(jù)類型。當數(shù)據(jù)發(fā)生變化時,Model會向關(guān)注該數(shù)據(jù)的發(fā)起者發(fā)送通知。IModel是一個基礎(chǔ)接口,其他的Model接口都派生于IModel接口,有IValueModel,IArrayModel,IVectorModel,IInterfaceModel,IMenuModel和ITextModel等。 Widget是窗口上的小的控件,如文本框,圖片框等,來完成一個Model中的數(shù)據(jù)表達,而不需要知道顯示的位置,只需要知道內(nèi)容和顯示的區(qū)域。Widget 監(jiān)聽Model中數(shù)據(jù)的變化,按照開發(fā)者的需要來顯示數(shù)據(jù),可以不做顯示處理,或者部分顯示,甚至做到后臺改變。Widget同時管理焦點和按鍵事件,IWidget是一個基礎(chǔ)接口,其他的Widget接口都派生于IWidget接口,有ICheckWidget,I RadioWidget,IButtonWidget,IProgressWidget,ITextWidget,ISliderWidget和IWaitCursorWidget 等。 Container來管理一組widgets的位置和布局,控制Widgets在屏幕上顯示的次序,通常一個widget 自身就可以成為一個Container。根據(jù)布局的原則,Container像堆棧一樣管理Widget。Widget在其中由底向上存放,所以Widget被疊加的時候,在堆棧底層的Widget可能被隱蔽,屏幕中只顯示堆棧頂層的Widget。也就是說,Container先畫最底層的Widget,然后逐層向上實現(xiàn)屏幕顯示。IContainer是一個基礎(chǔ)接口,其他的Widget接口都派生于IWidget接口,有IPropContainert,IConstraintContainer,IXYContainer,ICardContainer和IDecorator等。一個decorator是一個特殊的container用來管理和修飾指定的 widget,通IDecorator可以實現(xiàn)BorderWidget,BlendWidget,ImageWidget,TabWidget,ScrollbarWidget,ScrollIndicatorWidget,ViewportWidget,TitleWidget,ListWidget,GridWidget和PickWidget等等。 Form是針對頁面顯示的,有兩類:RootForm和一般的Form。RootForm 預(yù)先實現(xiàn)了一般通用的屏幕布局,負責管理Form堆棧,為Forms定義了可視化元素,包括標題、背景和軟健包括標題,軟鍵按鈕和背景,設(shè)定標題的區(qū)域,軟鍵按鈕的顯示區(qū)域,一組form的客戶區(qū)域,區(qū)別彈出對話框和手機的全屏顯示,管理未處理的按鍵事件并分發(fā)給當前的form,而且,RootForm中的元素是可以被替換或刪除。 Form同樣包含標題,軟鍵按鈕和背景等顯示元素,當顯示元素的內(nèi)容發(fā)生變化是發(fā)出相應(yīng)的通知,獲取當前Widget沒有處理的事件。Form負責應(yīng)用的邏輯,構(gòu)建和放置Widgets,設(shè)置Model中的數(shù)據(jù),處理應(yīng)用的執(zhí)行流程。IForm是一個基礎(chǔ)接口,其他的Form接口都派生于IWidget接口,主要有ListForm,StaticForm和PopupForm。?
轉(zhuǎn)載于:https://blog.51cto.com/wirelesscao/636205
總結(jié)
- 上一篇: 釜底抽薪:掌控能源成本,根治企业能源损耗
- 下一篇: 什么是MIME?什么是MIME邮件?