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