我正在製作聯繫人應用程序,並且我有兩個視圖和兩個演示者(contactList和contactForm),兩個視圖都有一個工具欄,並且在該工具欄中我需要用一些複雜的邏輯創建一個搜索小部件。mvp中的重疊視圖
首先,我必須爲小部件實現一些clickHandlers,並且必須只有一個邏輯實例,所以我不能在兩個演示者中創建兩個處理程序副本。
現在我想我需要用處理程序的邏輯創建一個新的searchPresenter,但是如何實例化新的演示者?是否應該在其他演示者中實例化?如何看待它,是否應該在其他視圖中實例化?
所以這就是我傾向於這樣做:
兩個contactListView和contactFormView創建搜索查看
toolbox.add(new SearchView());
兩個主持人
創建searchPresenter交工視圖(請注意,我需要得到的ContactListPresenter,我會希望避免的觀點,我不想主持人知道該視圖的任何東西):
initSearchPresenter() {
this.searchPresenter = new SearchPresenter(view.getSearchView)
}
和我n個控制器添加initSearchPresenter通話,旁邊既創造主持人:
contactForm = new ContactFormPresenter(new ContactFormView());
contactForm.initSearchPresenter();
contactList = new ContactListPresenter(new ContactListView());
contactList.initSearchPresenter();
我的問題是,這是解決這個問題的正確途徑,或者我應該做一個完全不同的東西?