MVP或MVC模式中的代表性数据放在哪里?

时间:2018-10-30 14:30:36

标签: oop model-view-controller mvp

在MVP和MVC模式中,您希望将View与Model清楚地分开。

但是要显示诸如图标,当事情发生时应播放的动画之类的东西,模型需要告诉View如何表示。例如,用于选择元素的按钮上的图标。

因此,我认为诸如图像,动画帧数据等之类的东西应该成为模型的一部分,因为模型的元素需要对此进行定义。但是我也觉得情况并非如此。因此,我唯一能想到的就是将巨大的Mapping存储在某个地方,该地方将模型的类型映射到代表性数据。在我看来,这是一个巨大的反模式。

您如何在项目中构建这些内容? “应如何看”的数据存储在哪里?在模型内部,演示者内部(映射)或视图内部(映射)。也许我在这里错过了一些关键的东西。

要弄清这是哪里来的:

请考虑您有一些对象,这些对象由列表中的图标表示。这些对象都有一个共同的超类型,但是每个对象在细节上都不同,因此应该用不同的图标表示。此外,也许您将所有内容都实现为通用类型,并仅在构造或运行时设置东西时定义了它的整体行为,所以您甚至没有办法区分要通过类型显示的图标。因此,我认为这些对象需要一个类似于“ getImage”的访问器来获取它们想要在GUI中具有的表示形式。但是让图像成为模型的一部分似乎是错误的。

为提出形成答案的通用方法,可以在以下目录中构建虚构项目:

src/model/
src/view/
src/presenter/

每个类型/类以及哪些方法位于何处?

1 个答案:

答案 0 :(得分:2)

  

您如何在项目中构建这些内容?哪里的数据   “应该看起来如何”被存储?

这是我使用Picker的地方。您将ViewModel映射到Model并使用ViewModel表示要显示的属性。您可以将ViewModel修改为:

  • 样式/ css属性,
  • 组合属性
  • 验证逻辑
  • 更改属性的显示方式等等。
  

每个类型/类以及哪些方法位于何处?

src / viewModel