鲍勃叔叔在他的《清洁架构》一书中说,主持人应该将收到的数据放入他称为“视图模型”的东西中。
这与Model-View-ViewModel(MVVM)设计模式中的“ ViewModel”是一样的吗,还是简单的数据传输对象(DTO)?
如果不是简单的DTO,它与View有何关系?视图是否通过观察者关系从视图获取更新?
我的猜测是它更像是MVVM中的ViewModel,因为罗伯特·马丁(Robert Martin)在他的书的第23章中说:
[演示者]的工作是接受来自应用程序的数据并对其进行格式化以进行演示,以便View可以将其简单地移动到屏幕上。例如,如果应用程序希望在字段中显示日期,它将向Presenter传递Date对象。然后,Presenter会将数据格式化为适当的字符串,并将其放置在称为View模型的简单数据结构中,View可以在其中找到它。
这意味着View以某种方式连接到ViewModel,而不是简单地将其作为函数参数接收(例如DTO就是这种情况)。
我认为这是因为,如果您查看图像,演示者将使用视图模型,而不是视图。演示者同时使用输出边界和输出数据DTO。
如果既不是DTO也不是MVVM中的ViewModel,请详细说明它是什么。
ViewModel
是包装的Controller
,Presenter
并ViewModel
在鲍勃叔叔的干净架构。
Controller
-> ICommand
和Presenter
-> data-binding mechanism
。