首页 > MVP模式中Presenter是只负责调度,业务逻辑都放在Model里处理吗?

MVP模式中Presenter是只负责调度,业务逻辑都放在Model里处理吗?

MVP模式中Presenter是只负责调度,业务逻辑都放在Model里处理吗?

还是Model只负责提供数据,Presenter参与业务逻辑处理?


MVP模式更适合于展示型的模块,就是不需要太多处理用户请求的业务逻辑,而主要是单纯的将数据输出到用户端。也就是说,MVP模式中业务逻辑是较少的,如果有,就放在Presenter中,Presenter主要就是根据需要组合Model中数据的。


所谓的MVP模式就是model view presenter
model 处理业务逻辑 所以自然包括数据处理
view ui处理
presenter 控制model与view的联系


一个model接口定义model能做什么,给presenter调用;一个modelImpl实现,主要负责数据的写改删查。
一个view接口定义view要有什么交互,例如加载时显示等待读条,加载完隐藏,给presenter调用;一个viewImpl实现。

一个presenter接口定义presenter负责的逻辑,给view调用;
一个presenterImpl实现,调用view接口和model接口,统筹界面交互与数据存取,例如loadData()调用view接口的showLoadingProgress(), model接口的getData(),view接口的listViewShowData(),hideLoadingProgress()这样的。

按我的理解就是一个view对应一个presenter对应多个model;

view只写展示什么,怎么展示;model只写怎么存取数据;
presenter大总管,调用model,view,实现逻辑还有交互,之后给view调用

新手菜鸟欢迎指正。


MVP:
M:定义数据的格式,还有媒体库数据的加载,异步任务等。即数据模型&数据加载。
V:只有界面接口,没有业务逻辑。
P:业务逻辑,负责调用数据加载,然后再通过界面接口,将数据模型组合传递给V去展示。


MVP由MVC演变而来,业务逻辑处理,MVC放在Contorller,MVP放在Presenter。


V:UI的展示,UI的界面的更新,入户输入的获取
M:本地数据的读取,存储,网络,数据库,等等的操作
P:英文是 Presenter :主持人,业务逻辑放这里,调度 V 和 M ,去实现业务逻辑。


如楼上几位说的P是大总管,哈哈。

riotjs 1.x版本就是MVP模式的。很小一点点,就三个函数。之前用过。

现在在用riotjs2. x版本,完全不一样的设计理念,类似react的UI组件的模式。挺好用的。关键还是很小。我拿它写一个电商项目的Web版本,所有页面编译之后加上自己的库,js只有70k+

【热门文章】
【热门文章】