gpt4 book ai didi

mvvm - 递归模型设计

转载 作者:行者123 更新时间:2023-12-03 10:36:16 25 4
gpt4 key购买 nike

我正在开发的软件使用大致具有这种组织的 API:(您可能需要阅读两次才能解析符号 :))

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

  • 可以将事件放置在图形 View 上以创建场景。

    正如你所看到的,这个模型是递归的,因为你可以把一个场景放在一个区间中,并且在这个场景中无限期地放置另一个区间。

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

    最佳答案

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

    每当使用 ViewModel 时,请记住 MVVM 或 MVP 是 UI 模式,而不是业务逻辑模式。 Presenters 应该调用其他类(应该被认为是 MVVM/MVP/MVPVM 模式之外的)来完成他们的业务逻辑。听起来你提到的 API 提供了很多业务功能;理想情况下,您的模型将特定于您的应用程序,然后您将 API 的对象适本地映射到您的模型对象。

    使用域对象(例如由 API 提供的对象)作为您的模型是很常见的,有时甚至是错误的,因此请小心,因为您需要模型上的属性或属性不是由 API 对象提供的,你被卡住了,很困惑。非常愿意将 API 的对象映射到仅为您的应用程序或站点存在的自定义模型对象。

    如有疑问,请返回 SOLID ,尤其是单一职责原则。

    希望我正确地理解了你。

    关于mvvm - 递归模型设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26911424/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com