MVP pattern предполагает, что View подвергает методы Presenter. Например, в View мы можем написать:MVP узор. Как уменьшить код, повторяющийся?
public HasClickhandlers getButton() {
return myBtn;
}
и доступ к этому методу от ведущего, как
view.getButton().addclickhanlder() ...
Но когда я строй моего приложения в этом стиле, у меня есть много ненужного код. Например, я хочу создать TablesView
и TablesPresenter
(я решаю, что TablesPresenter
и TablesView
- это минимальная сущность (минимальный модуль), которая не может быть разделена на более мелкие презентаторы и представления и не может быть более сложной). Затем, когда я создаю TablesView
, я хочу добавить в это представление другой пользовательский компонент - MyCustomTable
. И внутри MyCustomTable
положить MyCustomHeader
, внутри MyCustomHeader
положить MyCustomFilter
и т. Д. (Эта последовательность может быть намного длиннее) ... Так что проблема в том, когда я хочу получить доступ от Presenter до введенного текста (пользователем) внутри MyCustomFilter
, мне нужно разоблачить метод на MyCustomFilter
:
//inside MyCustomFilter
public String getFilterText() {
return textBox.getText();
}
затем в виджете, который содержит MyCustomFilter
- то есть в MyCustomHeader
мне нужно выставить этот метод:
//inside MyCustomHeader
public String getFilterText() {
return myCustomFilter.getFilterText();
}
после этого, внутри MyCustomTable
мне нужно выставить этот метод:
//inside MyCustomTable
public String getFilterText() {
return myCustomHeader.getFilterText();
}
После этого мне нужно выставить getFilterText()
метод внутри TablesView
(который содержит MyCustomTable
) и после всех этих операций мой ведущий может получить доступ к тексту внутри MyCustomFilter
.. А когда-то эта последовательность более длиннее. Итак, как решить эту проблему? Может быть, я не понимаю некоторых вещей о MVP?
Переформулируйте свой вопрос. Это хаотично и содержит слишком много деталей. – dzendras