我正在学习MVP
结构,我想弄明白:
每个模型代表一个动作,如果我需要从一个动作发送数据 模型到另一个,我怎么能正确地做到这一点?我应该传递数据吗? 通过演示者,比如
firstModel -> commonPresenter -> secondModel
OR
在模型之间发送数据,例如
firstModel -> secondModel?
如果这些模型与不同的演示者互动会怎么样?
答案 0 :(得分:0)
模型视图Presenter模式与大多数架构模式一样,对实验非常开放。要记住的重要一点是将View与域逻辑和数据处理分开。
特别是在Android中,尽可能将代码保留在活动和碎片等特定于框架的类中是很有用的。
根据我的经验,让模特彼此之间进行交流是最好的,作为彼此的观察者。对于视图和演示者,或者通常,同一架构层中的任何组件都是如此。
答案 1 :(得分:0)
AFAIK你必须在演示者中将你的域模型转换为你的Ui模型,所以你必须在演示者中调用这样的方法或构造函数:
ModelOne modelOne = new ModelOne(modelTwo);
请考虑DRY主体,不要像演示这样
分配演示者本身的每个字段modelOne.title = modelTwo.title;
modelOne.id = modelTwo.id;
但是如果要将域图层模型转换为另一个域图层模型,则必须在其他图层中执行此操作。阅读本文了解更多信息: http://fernandocejas.com/2014/09/03/architecting-android-the-clean-way/
"演示者与模型层通信,将数据转换为UI友好格式,并更新视图" 你也可以在这个链接中找到上面的句子: http://iyadagha.com/using-mvp-ios-swift/