首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >递归模型设计

递归模型设计
EN

Stack Overflow用户
提问于 2014-11-13 14:40:27
回答 1查看 104关注 0票数 1

我正在开发的软件使用了一个API,它大致具有这样的组织:(为了解析符号:),您可能需要读两遍它。

  • 场景是包含一组间隔(持续时间)和事件(时间点)的过程。
  • 间隔由它的开始和结束事件定义,它指定开始和结束的时间(因此它的持续时间)。间隔可以容纳任意数量的进程(如场景)。
  • 一个事件只是一个时间点。

事件可以放在图形视图上,以便创建场景。

正如您所看到的,这个模型是递归的,因为您可以将一个场景放置在一个间隔中,而在这个场景中又有一个无限的间隔。

我的问题是:在“视图模型”-“演示者”-“视图”模式中,API对象和视图模型对象的所有权关系应该是什么?我应该让API管理它自己的模型对象的所有权,比如Event & Interval,还是应该在实例化相应的视图模型对象时实例化它们?有最好的做法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-13 14:56:43

您可能应该让API管理自己的域对象,并在项目中根据需要将这些对象映射到自定义模型或ViewModel对象。

无论何时使用ViewModels,都要记住MVVM或MVP是UI的模式,而不是业务逻辑的模式。演示者应该调用其他类(应该被视为MVVM/MVP/MVPVM模式之外的类)来执行他们的业务逻辑。听起来,您提到的API提供了大量的业务功能;理想情况下,您的模型将特定于您的应用程序,然后将API的对象映射到您的模型对象。

将域对象(例如API提供的那些对象)用作您的模型是很常见的,有时也是一个错误,所以要小心,因为在您的Model上需要一个不是由API对象提供的属性或属性时,您会陷入困境和困惑。非常愿意将API的对象映射到只存在于应用程序或站点的自定义模型对象。

当有疑问时,请回到实心,特别是单责任原则。

希望我能正确理解你。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26911424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档