我有以下簡單功能:重構的啓用/禁用按鈕切換功能
private void EnableDisable941ScheduleBButton()
{
if (this._uosDepositorFrequency.Value != null)
this._btnScheduleB.Enabled = ((int)this._uosDepositorFrequency.Value == 0);
}
這其中我想分成被動視圖和主持人一個WinForm類的成員。顯而易見的是,業務邏輯與用戶界面佈線纏繞在一起。我只是不確定將它們分開的最佳方式。
爲了給出一點上下文,該函數從窗體中的三個位置調用。 _uosDepositorFrequency是一個只有兩個按鈕的單選按鈕組。
任何想法?
更新:
好的,也許它不像我想象的那麼明顯。業務規則規定,如果僱主進行半週期存款(_uosDepositorFrequency.Value = 0),則他們需要填寫附表B表格。
您是否真的需要將所有業務規則移出UI層?這通常會帶來更多的複雜性,有時候值得一提的邏輯(尤其是你所展示的邏輯......) – 2009-04-30 16:01:01
嗯,我把業務規則分開的原因是因爲表單將會是取而代之,但規則仍然存在。 – 2009-04-30 16:06:19
夠公平的。我在下面的答案中給了你一個選項。但是,我個人會保留原樣,只是爲替換人員發表評論;一般而言,只有當您在多個用戶界面之間共享業務規則時纔有意義... – 2009-04-30 16:16:35