2009-02-23 69 views
4

在堆棧溢出播客傑夫和喬爾的插曲#41討論了導致使用不便GUI意識形態。你見過哪些GUI工具包,最有利地影響使用它們的程序員?對於可測試性和可用性,您發現哪種級別的分離(在用戶界面和實現之間)最有效?最自然的GUI工具包

回答

4

你見過什麼GUI工具包,大多數有利地影響使用它們的程序員?

我自己的,基於與計算機科學與我發展爲行業的特定需求開發經驗。總之,沒有什麼靈丹妙藥是你必須使用經驗和判斷力的工具。適用於我的CAD/CAM軟件的工具不適用於Web開發人員的網站,也不適用於辦公軟件的開發人員等。

你發現了什麼水平(之間的用戶接口和實現)分離的最有效的可測性和可用性?

對於運行在計算機桌面上的傳統應用程序,我推薦使用Passive View的變體。負責創建和管理表單的類是一個將事件傳遞給UI對象的瘦shell。 UI_Object通過接口與表單交互。在術語中,UI對象實現了一個UI_View接口,並將自己註冊到位於對象層次結構中較低位置的View Controller。

UI_Object然後執行實現修改模型的命令模式的對象。命令對象可以通過View Control公開的接口與各種視圖進行交互。

這樣做是什麼讓你撕掉表單類和與實現形式的接口存根類代替它們。存根類被用於自動化測試,尤其是集成測試。

接口精確定義了Form,UI_Object,Commands和視圖之間的交互。它們可以被設計爲相對語言不可知的,因此它們可以使平臺之間的移植更容易。

我不會編程網絡作爲精通,但也有完成同樣的事情相關的模式。

我還必須警惕被動視圖可能會矯枉過正。您可能不希望將其用於簡單設置對話框(如設置串口參數的對話框)。這是一個判斷是否易於維護和編碼值得追加測試時間。如果只通過一個命令調用一個對話框來修改某些設置參數,那麼在命令本身內定義該對話框是一個很好的選擇。