什么是MVP?

来源:互联网 发布:centos搭建网站lamp 编辑:程序博客网 时间:2024/06/05 07:09
一直只知道MVC(Model,View,Controller),没有听过MVP(Model,View,Presenter)。看了Channel 9的采访,再加上这篇“The Humble Dialog Box”的文章,大概明白了。原来,在MVC里,View还是可以直接操作Model,从而导致很多逻辑代码写在了View里头,无法方便的进行单元测试。因此,MVP希望能够进一步把View进一步压缩,真正的UI很小,而逻辑都写在Presenter里。这样,单元测试就可以针对Presenter来进行。为什么呢?因为View已经Presenter是通过接口耦合的,因为我们完全可以写一个虚假的测试用MockView来测试。这样,我们就可以测试界面的完整流程了,而不必采用什么模拟点击的方式!

MVP的一个特点是,由Presenter来驱动程序的运行,View是根据需要出现的。而不是我们习惯的做法,从View开始出发驱动整个程序的运行。

MVP的好处:单元测试方便,代码重用方便

但是,MVC好像也是这个意思吧,我可是一直这么理解的。只是没想过分得这么彻底,还要做TDD(Test Driven Development)。
原创粉丝点击