MVC模式中的控制器和MVP模式中的演示者之间有什么区别?

Sul*_*lla 14 model-view-controller mvp design-patterns

MVC模式中的控制器和MVP模式中的演示者之间有什么区别?您能否提供链接以了解这两者的优点和使用方案?

Pét*_*rök 11

在MVP中,Presenter采用"中间人"的功能(由MVC中的应用程序控制器播放).此外,View负责处理UI事件(如mouseDown,keyDown等),这些事件曾经是Controller的工作.最终,模型严格地成为域模型.

维基百科说.

以下是对两者之间差异更详细解释.

另见Martin Fowler的Model View Presenter退休说明.


Nei*_*gan 7

在MVC中,视图仅由模型更新(通过监听其事件).它永远不会被控制器更新.当您需要为视图格式化模型数据时,这是有问题的,因此需要MVP.

在MVP-Passive View中,视图仅由演示者更新(演示者设置视图属性).在更新视图之前,演示者将侦听模型上的事件[如果需要,可以修改数据].

在MVP-Supervising Controller中,视图由模型或演示者更新.如果不需要格式化,视图将通过模型自行更新.如果需要格式化,它将通过演示者自行更新.

  • 谢谢。你是唯一一个以直截了当的方式解释这一点的人 (2认同)