1

现在似乎人们喜欢以不同的方式使用 MVP 模式,有些人更喜欢视图完全不知道模型并让演示者“提供”数据,而有些人更喜欢只将模型提供给视图并让视图直接从模型中读取数据。就个人而言,我更喜欢后者。

在阅读 MVP 时,似乎所有示例都或多或少地集中在处理一种数据类型的 CRUD 视图上。但在现实世界中,我们的视图可以处理多个数据源。例如,假设我们有一个适用于不同类型数据的设置视图,例如 SystemSettings、WorkflowSettings 和 UserSettings(我们不要争论 UX,这只是为了举例)。

我的第一个问题是,您如何为使用多个数据源的视图定义“模型”?我的意思是,您的视图是否具有设置不同“模型”(setSystemSettings()、setWorkflowSettings()、...)的方法,或者您是否将实际的域模型包装在 DTO 中并且只有一个简单的 setModel(settingsDto) 方法在你看来?

4

1 回答 1

0

对我来说,“模型”是抽象的。我现在将模型视为“Presenter 完成工作所需的任何东西”。

因此,根据您的示例,我的方法可能是将我的模型定义为 RepositoryFactory,它允许我的演示者创建获取其数据所需的适当存储库。

这仍然允许进行单元测试。

于 2013-08-27T08:18:32.293 回答