在MVP中,View为小部件的接口提供了getter方法 - 比如hasClickHandler
aso。 - 以便演示者可以访问这些ClickHandler以添加侦听器和设置值。
这使得视图真的很愚蠢。
如果要测试mvp演示者,则必须模拟视图,并且必须为按钮创建模拟以模拟按钮上的单击。
另一方面,在MVP2中,视图知道演示者,演示者提供类似onButtonClick
的方法,视图添加了ui处理程序。这使得视图了解演示者,但我认为这更容易测试。
那么MVP和MVP2的优点和缺点是什么?
是否可以为每个小部件编写模拟以创建良好的视图模拟?
与MVC相关的MVP的一个好处是,你知道什么是Presenter,View和Model。如果MVP2像MVP那样清楚,那我就不太可能了。
你的经历是什么?
答案 0 :(得分:2)
我使用了两种方法,我认为使用MVP2模式有两个优点(通过演示者界面在演示者中查看调用方法):
HasXXXHandler
方法创建这么多内部(匿名)回调。 HasXXXHandler
接口创建模拟,而使用BDD,您只需要测试是否调用了演示者的接口函数。 MVP也只是一种模式,与任何其他设计模式一样,它只是一个指南。为了坚持最纯粹的实施,没有必要让你的生活更加艰难。