MVC和MVP的区别

MVC: Model - View - Controller

MVP: Model - View - Presenter

 

MVC和MVP到底有什么区别呢?

     从上图可以看到在MVC里,View是可以直接访问Model的,从而View里面是能包含Model的信息的,不可避免还要包括一些业务逻辑。在MVP里更关注Model的不变,而同时有多个对Model的不同展示。

 

把Controller和View混在一起,会有一些弊端:

1、难以测试。

2、代码难以重用。

 

MVP是如何解决MVC的问题的?

 

      在MVP里,Presenter完全把Model和View进行了分离,主要的程序逻辑在Presenter里实现,而且Presenter与具体的view是没有一点关联的,而是通过定义好的接口进行交互,从而使得在变更View的同时可以保持Presenter不变,即重用。

     在MVP模式里,View只应该有简单的Set/Get方法,用户输入和设置显示的内容,除此不应该有更多的内容,绝不允许直接访问Model,这就是与MVC最大的不同之处

posted @ 2016-09-21 10:49  Mr. Ant  阅读(5548)  评论(0编辑  收藏  举报