0

我在尝试理解这种模式时遇到了很多麻烦。在工作中,我们正在使用被动视图实现 MVP。我们正在使用 WinForms。

  • 所以我们有一个View(它是一个windows窗体),它实现了一个接口并有一个presenter。
  • 演示者获取视图实现的接口实例,并管理视图抛出接口。
  • 演示者可以看到模型和经理。
  • 管理器处理几个模型的数据库持久性,但它不会手动添加它们,它使用一个单独的层,称为数据,因此它告诉该层持久化数据
  • 然后数据层使用实体框架将数据持久化到数据库中

假设我们有一个客户端视图,它代表一个模型客户端,并且我们的数据库中有一个名为客户端的表。客户可以有姓名和城市。

我们还有一个 Cities 视图,它是一个简单的添加、编辑和删除,它还​​代表了一个模型 City 和一个表 City。

现在在我们的客户视图中,我们想让用户添加一个新城市,所以在视图中,我们打开另一个视图,城市视图,然后用户创建一个新城市。

从客户视图,我想看看用户添加了哪个城市,这怎么可能?视图会返回一些东西吗?

(我想把它放在内存中,添加城市时不要将任何东西保存到数据库中,我只想要城市的模型)

我认为返回模型并从视图中查看模型不是 MVP。那我该怎么办?

4

1 回答 1

0

一个视图打开另一个视图是完全合理的,但我个人不赞成视图返回一个供调用者使用的值。如果其他视图需要访问这个新城市怎么办?

在此处查看我的答案:MVP 演示者之间的通信?有关使用 pub/sub 实现目标的示例。

于 2012-04-26T04:08:49.493 回答