上的浪費。
一個功能更強的方法是抽取一個應用程序的骨架,放在一個類中。應用程序可以通過實例化這個類,或者創建一個從這個類派生出來的新類來複用公共的代碼段。使用一個類來獲取應用程序的共同特點比拷貝上麵顯示的樣板有幾個優點。首先,一旦程序設計者作了一份樣板的拷貝,他或她就喪失了跟蹤原始代碼的能力。然而,那些僅是簡單地實例化一個封裝這個代碼的對象的程序,可以從修改錯誤和改進中獲益,因為它們隻需要與一個修改過的版本重新連接。
基於麵向對象理論的應用程序可以通過派生出一個新類修改已生成代碼的行為。因為改變隻是對一個派生類做的,而對原始類未作改動,所以要複原至最初的行為就容易得多了。確定任何在發展過程中帶入的新錯誤完全包容在新代碼中,也變得容易多了。
Application類:
Application類處理初始化和所有基於Xt的應用程序通用的事件處理步驟。Motif應用程序隻是簡單地實例化一個Application對象,而不是調用類似XtAppInitialize()或XtAppMainLoop()的Xt函數。程序可以從Application類中派生出新類也可以直接實例化。Application類在構造函數中不創建任何widget。Application類為在整個應用程序中都可能需要的一些數據提供存儲的空間。
框架支持應用程序的多頂層窗口。一個方法是創建一個唯一的頂層的窗口作為應用程序的主窗口。所有其它的窗口都是彈出Shell,它們的父親是那個主窗口。另一種方法是創建一個唯一的Shell,它永遠不出現在屏幕上.所有其它的窗口必須是這個主Shell的彈出兒子.在這個模型中,所有頂層窗口等價對待,彼此間是兄弟關係,一個窗口邏輯上可以是應用程序的頂層窗口。
可以定義一個MainWindow類以提供應用程序中頂層窗口的基本屏幕布置。
ᴏᴏᴘ.ᴛᴡ 呈現最新的小說章節
基於這個框架的應用程序不必定義main()。函數main()定義框架的一部分,並且管理調用Application::initialize()成員函數以及進入事件循環。隱藏main()允許框架管理比所有應用程序必須執行的例程初始化更多的事情,即每一個程序都是Application類的一個實例。應用程序的創建就是簡單地由實例化一個Application對象完成的。
對話類:
為了一些特殊意圖,在屏幕上現實相對時間較短的對話窗口,是許多交互式應用程序的一個共同特點。管理帶有許多輸入,控製或者選項的應用程序的一種方法是把用戶界麵中不常使用的部分放在幾個分開的對話窗口中,隻有當需要時才顯示,對話窗口可以有幾種不同的使用方法。
對話類依賴Application類,因為對話需要一個父widget。因此要強迫應用程序傳送一個widget給post()方法作為父親使用,但是允許有不同的父親。為了不使高速緩存複雜化,這裡使用Application類的Shellwidget以保證所有的對話有相同的父親,在屏幕上集中了對話。
命令類:
在交互式應用程序中,用戶的每一個動作幾乎都被認為是一條命令。例如,絕大多數的字處理程序支持類似"插入字符"的簡單命令和更複雜的類似"段落重新劃分"以及"保存文件"的命令。用戶可能認為插入字符不是發出了一條命令,但是對程序員來說,插入字符和段落重新劃分之間沒有什麼不同。程序員典型地把這些命令作為函數(例如,回調函數)來實現,這些函數作為用戶動作的結果被執行。這樣係統的每一個命令被模型化為一個對象。
Cmd類完全獨立於任何用戶界麵。命令對象可以有計劃地實例化和執行。而不必依賴於某個用戶界麵組成部件。然而,通過一些用戶界麵組成部件,代表由用戶初始化的動作,對一個命令對象來說是很普遍的。CmdInterface類就是支持Cmd對象和widget或其它用戶界麵組成部件間的相互作用。
(3)OSF/Motif之UIL與C++混合編程
UIL即用戶界麵描述語言。它是一種規範語言,描述Motif應用程序的用戶界麵的初始狀態。UIL配合Motif資源管理器(MRM)以一種較C語言更加靠近自然語言的高級語言描述、定製Motif用戶界麵。
使用UIL可以快速地開發用戶界麵的原型,因為使用者不需要知道具體的wid-get創建函數極其調用格式。UIL不需要控製流,用戶可以大致按對象在界麵中的放置順序來描述它們,這使得uil文件易讀且不易出錯。另外,由於用UIL編譯器對uil文件進行解釋產生的用戶界麵描述文件uid與應用程序之源程序分離,應用程序隻是在運行時才讀取uid文件。也就是說同一個應用程序可以有一個或多個不同的界麵,同一個界麵可以被一個或多個不同的應用程序所擁有。
:構結的序程用應的件文diu用使
;構結據數部內之需所MRM化始初數函)(ezilaitinImrM用調●
;來起係聯件文diu的體具與MRM將數函)(yhcrareiHnepOmrM用調●
;數函調回記登來數函)(semaNretsigeRmrM用調●
。tegdiw子其及tegdiw的中件文diu應相於列建創並,息信件文取獲中件文diu從序順取獲件文diu的錄記針指次層索搜按數函)(tegdiWhcteFmrM用調●
.類ppamrM類子的類noitacilppA建創
。法方的tegdiw建創,件文diu取讀的用使遍普了供提它,類子的類noitacilppA是類ppamrM
。可即件文diu的適合用調序程使,句語件文diu入讀的應相變改要需隻序程的同不對.便方常非程編合混言語++C與言語LIU用使
IF