Android:MVP。组件之间通信的正确方式
Android: MVP. Right way to communicaticate between components
我已经在我的应用程序中实现了 MVP 模式。
我有一个额外的层,我称之为 Repository
,它负责 运行 HTTP
异步请求。我已经为 Repository
和 Model
之间的通信创建了 OnTaskCompleteListener
接口(Model
实现了 OnTaskCompleteListener
)。因此,当 Repository 完成请求时,它会调用 Model 中的方法并更新数据。然后,Model 使用相同的机制调用 Presenter 中的一个方法,让它知道 Model 已经更新。
我担心的是从 Repository
到 Presenter
的回调链。
是否有更好的方法在 MVP 的组件之间进行通信,或者这是可行的方法吗?
我确实尝试了 "EventBus",但是大量需要的接口让我望而却步。
观察者似乎不合适,因为每个组件只有一个监听器(模型监听存储库,演示器监听模型)。
谢谢。
经过大量阅读,我得出结论,我不需要另一个 class 'Repository' 来委托加载数据。该模型实际上应该负责 加载和保存数据 。
为演示者的方法使用回调方法参数,调用在模型中加载数据的方法是模型和演示者之间进行通信的好方法。
Presenter.java
@Override
public void loadData(){
mModel.loadData(new Callback{
void onSuccess(){
getView().notifyDataLoaded();
}
void onError(){
getView().notifyErrorOccured();
}
});
通过这种方式,模型、演示者和视图以非常清晰和直观的方式链接在这个单一方法中。
希望这会对某人有所帮助。
我已经在我的应用程序中实现了 MVP 模式。
我有一个额外的层,我称之为 Repository
,它负责 运行 HTTP
异步请求。我已经为 Repository
和 Model
之间的通信创建了 OnTaskCompleteListener
接口(Model
实现了 OnTaskCompleteListener
)。因此,当 Repository 完成请求时,它会调用 Model 中的方法并更新数据。然后,Model 使用相同的机制调用 Presenter 中的一个方法,让它知道 Model 已经更新。
我担心的是从 Repository
到 Presenter
的回调链。
是否有更好的方法在 MVP 的组件之间进行通信,或者这是可行的方法吗?
我确实尝试了 "EventBus",但是大量需要的接口让我望而却步。
观察者似乎不合适,因为每个组件只有一个监听器(模型监听存储库,演示器监听模型)。
谢谢。
经过大量阅读,我得出结论,我不需要另一个 class 'Repository' 来委托加载数据。该模型实际上应该负责 加载和保存数据 。 为演示者的方法使用回调方法参数,调用在模型中加载数据的方法是模型和演示者之间进行通信的好方法。
Presenter.java
@Override
public void loadData(){
mModel.loadData(new Callback{
void onSuccess(){
getView().notifyDataLoaded();
}
void onError(){
getView().notifyErrorOccured();
}
});
通过这种方式,模型、演示者和视图以非常清晰和直观的方式链接在这个单一方法中。 希望这会对某人有所帮助。