MVVM:模型的 ViewModel return 实例,或将 VM 列表展平为模型列表?
MVVM: ViewModel return instance of a model, or flatten VM List into Model List?
我有一点设计问题,我不确定最好的方法。
我有一个已加载的 "Question" 模型列表。这些问题会呈现给用户,并因此包装在记录用户输入的 ViewModel class 中。
然后将输入用作引擎的一部分以产生各种结果。该引擎的输入通常是用于处理最终结果的模型列表。
我的问题是 "Question" 扩展了 "Action",这是引擎中使用的另一个模型,让引擎一起处理这些对象是有意义的。但是,从用户输入中获得的信息目前仅保存在 QuestionViewModel 中。
正确的处理方法是什么?让流程混合使用模型和视图模型是否可以接受?我有一些建议,但我不知道最好的设计选择是什么:
- 让 QuestionViewModel 记录 Question 的结果,并将 Question 列表传递给引擎。
- 将 "QuestionViewModel" 的列表传递给引擎,但 return 是基础 "Question" 的一个实例,并将其用于处理
ViewModel
类 的目的是为了方便通过用户界面操作您的 Model
对象。
因此,通常您将通过 QuestionViewModel
接口操作 Question
实例,然后将操作的 Question
对象传递回较低的业务逻辑层(即您的处理引擎) .
我有一点设计问题,我不确定最好的方法。
我有一个已加载的 "Question" 模型列表。这些问题会呈现给用户,并因此包装在记录用户输入的 ViewModel class 中。
然后将输入用作引擎的一部分以产生各种结果。该引擎的输入通常是用于处理最终结果的模型列表。
我的问题是 "Question" 扩展了 "Action",这是引擎中使用的另一个模型,让引擎一起处理这些对象是有意义的。但是,从用户输入中获得的信息目前仅保存在 QuestionViewModel 中。
正确的处理方法是什么?让流程混合使用模型和视图模型是否可以接受?我有一些建议,但我不知道最好的设计选择是什么:
- 让 QuestionViewModel 记录 Question 的结果,并将 Question 列表传递给引擎。
- 将 "QuestionViewModel" 的列表传递给引擎,但 return 是基础 "Question" 的一个实例,并将其用于处理
ViewModel
类 的目的是为了方便通过用户界面操作您的 Model
对象。
因此,通常您将通过 QuestionViewModel
接口操作 Question
实例,然后将操作的 Question
对象传递回较低的业务逻辑层(即您的处理引擎) .