2011-01-10 37 views
1

我有一個流程圖,我正在實施,它有4或5個路徑通過它取決於用戶輸入和一些處理的結果。當然,我不想在Windows窗體中使用所有這些邏輯,我只是​​想在表單中調用類的方法。讓我的業務邏輯類引用System.Windows.Forms並顯示對話框和MessageBoxes以獲取它需要處理並返回結果的輸入,這是不好的設計嗎?讓業務邏輯對象提示用戶輸入是不是很糟糕的設計?

回答

4

是的,這是糟糕的設計。你的班級應該提供一種與表單溝通的意思,並獲取數據。只需創建事件並讓Form訂閱它們,獲取信息以從定製的EventArgs類創建對話框。獲得輸入後,只需通過第二個事件將相同的類與附加信息一起推回。

這應該類似於MVP模式。

+0

MVP模式我相信,不是嗎? – nick 2011-01-10 21:59:52

+0

這是我第一次做什麼的傾向。我想我只是在尋找某人來驗證它。謝謝。 – Keith 2011-01-10 23:22:53

3

是的,這是一個壞主意。您非常有效地將您的業務邏輯與演示文稿緊密結合。在其他情況下,您(可能不會)輕鬆地重新使用業務邏輯,並且您將無法在不觸及業務邏輯的情況下替換UI。

您需要讓UI和業務邏輯層進行通信,並讓UI層處理UI。

0

我認爲這是糟糕的設計。當你分離你的應用程序的組件時,一條經驗法則是讓它們保持分離,以便你可以在不同的計算機上運行它們。

0

是的。因爲這意味着你的商業對象根本就不是一個商業對象。

使用MVVM模式並將邏輯放入視圖模型中。

0

這是糟糕的設計,因爲您可能需要在具有不同UI或根本沒有UI(如在服務器或批處理過程)的情況下運行業務邏輯。這就是業務邏輯和用戶界面的分離。如果可能的話,在把事情交給業務邏輯之前,最好先在UI類中獲得所有必要的用戶輸入。但是,如果需要業務邏輯提示以獲取更多信息,那麼業務邏輯API採用回調方法委託最好,它可以調用以請求進一步的輸入。然後UI層可以決定如何最好地從用戶請求。

相關問題