曾幾何時,我寫了一段代碼,隨着時間的流逝,它開始聞起來。它的編碼方式不容易測試。每個兒童窗口與數據庫中心的Microsoft控件(如BindingNavigator等)緊密耦合。但是當它厭倦了我自己的代碼時,它就變成了不可重用,可測試或可以理解的(甚至是我自己)。WinForms中Model View Presenter(+ Passive View)的應用程序(解決方案)結構?
在閱讀了將業務邏輯和數據庫訪問/持久性分開的更好方法之後,我提出了第一個重大改變。然後,我可以打電話給我的孩子們,比方說,「MainForm」的主持人。
現在,我有一堆演示者,視圖,存儲庫,模型和接口,我希望在一個「標準」項目結構(如商業,模型,UI,測試等項目)中組織。有人可以公開這樣的結構,並且如果可能的話,他們會在每個文件夾中使用示例文件夾嗎?
此外,我應該只使用一個「MainPresenter」?或者是更好地爲每個孩子的形式,我會使用,例如:
var searchReceivalPresenter = new SearchReceivalsPresenter(
new SearchReceivalsForm { MdiParent = this }, new SearchReceivalsRepository());
在我看來,我應該保留幾個主持人。
由於提前,
#ZaijiaN,謝謝你的回覆。我理解MVP,的確,我已經完成了使用它的整個應用程序。我試圖找到的是一種更好的方法來「組織」一個Windows窗體解決方案,比如說,在層中。主要建立應用MVP的解決方案 – 2013-05-08 01:14:41