【发布时间】:2019-04-03 15:08:29
【问题描述】:
在 MVP 和 MVC 模式中,您希望清楚地将视图与模型分开。
但是要显示图标、当事情发生时应该播放的动画等内容,模型需要告诉视图它想要如何表示。例如选择元素的按钮上的图标。
因此,我认为图像、动画帧数据等内容应该是模型的一部分,因为模型的元素需要对此进行定义。但我也觉得不应该这样。因此,我唯一能想象的就是在某处存储一个巨大的映射,将模型的类型映射到代表性数据。这对我来说似乎是一个巨大的反模式。
您将如何在项目中构建这些内容? “应该怎么看”的数据存储在哪里?在 Model 内部、Presenter 内部(映射)或 View 内部(映射)。也许我在这里遗漏了一些重要的东西。
澄清这是从哪里来的:
假设您有由列表中的图标表示的对象。这些对象都有一个共同的超类型,但每个都有不同的细节,因此应该用不同的图标表示。此外,也许您将所有内容都实现为通用类型并仅在构建期间定义它的整个行为或在运行时设置内容,因此您甚至无法区分图标以通过类型显示。因此,我认为这些对象需要像“getImage”这样的访问器来获取它们希望在 GUI 中具有的表示。但是让图像成为模型的一部分似乎是错误的。
为了提供一种形成答案的常用方法,想象中的项目可以在以下目录中构建:
src/model/
src/view/
src/presenter/
每个类型/类的位置在哪里?
【问题讨论】:
标签: oop model-view-controller mvp