3
閱讀有關MVP模式,我發現有查看和演示之間的兩種通信模式:MVP中View和Presenter之間的通信模式是什麼?
View不知道主持人但提供實現
HasClickHandler
界面,演示註冊其事件處理程序的UI控件。查看演示知道,特別是它知道在演示,例如處理方法的名稱,當單擊查看一個提交按鈕,查看調用演示一個
onSubmitButtonClicked()
公共方法。
我發現後者更容易進行JUnit測試,因爲我可以直接模擬提交事件給Presenter。但是,我的理解是,View不應該知道Presenter。
第三種方法來解決權衡是讓演示註冊事件處理程序的視圖的控制,在處理程序調用的公共演示方法:
public void bind() {
display.getSubmitButton().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
onSubmitButtonClicked();
}
});
}
但這導致了大量的樣板代碼。
View-Presenter通信的正確模式是什麼?