触摸MVP

网友投稿 575 2022-09-05

触摸MVP

触摸MVP

触摸MVP

左直拳

我忽然关心起设计模式来了。

听说MVC是主流,现在又有个MVP。惭愧,我两样都不懂。落后啊落后,简直屎一堆。

不过这两天还是尝试着用了一下MVP。

所谓的MVP,是Model View Presenter 的缩写。Model,模型,……可能是……处理数据对象的实例……真好……;View,视图,界面,UI层吧;Presenter,表示器。

这个P,表示器,是专门为视图而设计的。

既然有了视图,为什么还要搞个表示器?

在ASP。NET里面,页面跟代码分离,真是一大进步。可是这个代码,其实与页面还是结合得相当紧密的。比方说,这个页面的TextBox该怎么赋值,ListBox的选项变了又如何,代码不是要一一控制吗?因此,这个代码文件往往要面面俱到,写一大堆,复杂无比。很可能结果是,这个代码文件既包含了视图,也包含了很多逻辑处理的细节,也就是MVC模式里的C,Controller(控制器)的一部分。

可是为什么不将这些东西都挪到控制器里面去呢?也许是页面与代码结合得太紧了,很难抽象出来。总不能,在控制器里直接操作页面的控件吧。

这样子有时候就觉得不太方便,页面代码太多东西了,一看头都大,想改也不好改。重用的话,可能拷贝、粘贴、修改是比较实惠的做法。

叉月革命一声炮响,微软给我们送来了MVP。

依我的理解,Presenter(表示器)就是为了解决上述问题而诞生的。逻辑控制,大部分都放在上面,由它推送数据,视图只单纯的负责接收数据、显示数据、提交数据。

具体做法是

1、定义一个接口,里面规定了一些属性

2、视图,即页面代码文件除了继承象WebPage/WinForm,还继承这个接口

3、视图实现这个接口,将属性落实到自己的控件上。比如,一个String型的属性,可能会对应一个TextBox的Text。

5、现在,Presenter里控制这个私有对象的属性,也就等于是控制了视图上的控件。。。

代码分离了。视图清净了。

如果您想做一个差不多的视图,那么只须继承同一个接口就行了,或者是继承另一个差不多的接口,而表示器还是同一个,可能只须稍做扩展。

这是我对MVP一点粗浅的理解。

大江东去,浪淘尽,

千古风流人物。

故垒西边,人道是,

三国周郎赤壁。

乱石穿空,惊涛拍岸,

卷起千堆屎。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:备份谷歌或其他浏览器插件
下一篇:日均7亿交易量,如何设计高可用的MySQL架构?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~