曾几何时,我写了一段代码,随着时间的流逝,它开始闻起来。它的编码方式不容易测试。每个儿童窗口与数据库中心的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