让我们来看一个简单的例子:
data --> projection --> view
我在这里所谓的投影可以是任何UI状态,导致过滤,排序,突出显示等......
在MVC范例中,数据存在于模型中,视图是视图,状态属于哪里?
我曾经在控制器中存储状态,但我听说它很糟糕,控制器应该保持“精益”,所有东西都应该塞进模型中。我可以看到使用无状态控制器进行测试的优势,但在模型中耦合数据及其投影似乎是反直觉的。
如果不同的观点需要不同的数据预测怎么办?它是如何分解的?
[编辑] 找到一些相关问题here和here,但他们没有直接回答问题。我知道将逻辑用于在模型中投影数据,但是没有说明应该维护这些投影的状态。
答案 0 :(得分:1)
"投影"你说的是两件事之一。它是实际模型数据,此时它属于模型层,或者它是MVVM中的ViewModel。因此,它存在于视图和控制器之间的自己的层中。
我真的需要看到更多细节,以了解哪些更能代表您想要实现的目标。例如,如果这是存储复选框的状态和文本字段,那么它是MVVM。如果您正在录制选择""的实体列表,那么它可能属于域层。
如果它是自己的型号,它可能与原始型号不在同一型号中。它可以完全分开,但仍取决于其他型号。