簡體   English   中英

你如何實現復雜的 UI 邏輯?

[英]How do you implement sophisticated UI logic?

我正在尋找復雜的 UI 邏輯實現的最佳實踐。 我正在開發一個 Windows Forms 應用程序,但我相信在任何平台上都應該有解決這個問題的通用模式。

我的表單上有許多控件,有列表、按鈕、表格和樹視圖。 因此,想法是根據“上下文”啟用某些控件,而禁用其他控件。 其中一些可以暫時提供一些功能,而另一些則不能。

目前它是“按原樣”實施的。 我處理事件,檢查更改(選擇了新的樹節點,選擇了幾個節點等),然后決定是否需要禁用或啟用某些控件。 我不太喜歡這種方法,因為表單代碼看起來很復雜。 如果我需要添加更多邏輯,它會變得更加復雜。 我真的很擔心,因為我們非常敏捷,新功能或大量更改是日常常態。

我想將所有這些邏輯分成幾部分(功能),其中每個功能都是一個 object,它知道如何檢查其 state,並根據此 state,啟用或禁用相關控件。

不要真的想發明任何新東西並試圖找到任何被廣泛使用的好主意。 請不要推薦單一的 UpdateUI() 方法,我相信從長遠來看這不會改變任何事情。

謝謝。

這個博客系列可能是您正在尋找的:

http://codebetter.com/jeremymiller/2007/07/26/the-build-your-own-cab-series-table-of-contents/

(可能看起來有很多材料,但從“Humble Dialog box”開始,基於Michael Feathers 的精彩文章)。 這就是“如何將你的邏輯與你的 UI 代碼分開”,這可能會解決你的大部分問題。

用戶界面數據綁定並將您的業務邏輯封裝到業務對象中是 go 的方式。 Rocky Lhotka 的 CSLA.NET 框架內置了許多出色的功能以及許多示例應用程序。 我已經在一個中型 WPF 項目和一個巨大的 WinForms/CAB 應用程序中使用它,並且非常喜歡它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM