3

我正在涉足 MVP 设计框架,目前我的解决方案如下:

项目:MODEL 包含:具体对象类、DataRetrieval 类、IDataRetrieval 接口

项目:PRESENTER 包含:Presenter 类,IView 界面

项目:VIEW 包含:视图类,程序类

我一直在尽可能地重新审视这个解决方案,但现在我不记得为什么我要按原样分发接口。好像不太对。我尝试了以下方法:

  1. 将接口移动到实现它们的类的相关项目中。
  2. 将两个界面移至演示者类。

进行这些更改中的任何一个都需要做一些工作,所以我只是想知道其中一个答案是否比另一个更好(或者两者都非常非常错误:))

如果重要的话,这是用 C# 设计的。

我很想听听你的意见!

安迪

4

2 回答 2

2

我刚刚在 Winforms 上完成了我的自定义 MVP 框架。根据我的经验,我可以清楚地确定任何 MVP 实施的以下子项目

  1. 示范工程
  2. 查看接口项目
  3. 演示者界面项目(它也可以与视图界面一起使用)
  4. 演示者实施项目
  5. 查看实施项目(这是你的 Winforms/WPF/ASP.NET 东西所在的地方)
  6. 应用程序控制器(这是 MVP 的一个重要且经常被忽视的方面。它负责启动整个框架,包括应用程序本身。它还管理跨演示者通信和导航)
  7. 应用程序导航器(导航器在应用程序控制器要求时提供具体视图和演示者)
于 2013-06-15T06:57:08.203 回答
1

我想建议您在解决方案中添加一个单独的项目并将其命名为 YourSolutionName.Contracts。将所有 View 和 Model 接口移到那里,这样您的 Presenter 项目就不会具有这两个程序集的依赖项(有关更多详细信息,请检查依赖项反转原则)。

于 2013-06-04T19:08:09.413 回答