我认为MVP中M代表的'Model'可以是域模型还是演示/视图模型,我是否正确?
答案 0 :(得分:7)
是的,模型基本上可以是任何模型。我认为它的方式,MVC的初衷是它是一个域对象,这当然是可能的。
但是,我的经验表明,如果我们引入专门的ViewModel / Presentation Model作为域模型和视图之间的绝缘,就可以实现更好的契合。
即使ViewModel在语义上看起来与Domain Object完全相同,这种绝缘使我们能够独立地改变这两者,从而遵循Single Responsibility Principle。
经常会发现View需要一些适用于特定UI技术的逻辑,而这种逻辑非常适合域模型。例子包括
可在此处找到更多信息