Я делаю первые шаги с GWT
. У меня вопрос после прочтения:MVP: Должен ли View реализовать интерфейс презентатора или наоборот?
В первом примере Presenter
определяет интерфейс для View
.
public class ContactsPresenter implements Presenter {
...
public interface Display extends HasValue<List<String>> {
HasClickHandlers getAddButton();
HasClickHandlers getDeleteButton();
HasClickHandlers getList();
void setData(List<String> data);
int getClickedRow(ClickEvent event);
List<Integer> getSelectedRows();
Widget asWidget();
}
}
А во втором, то View
определяет интерфейс для Presenter
.
public interface ContactsView<T> {
public interface Presenter<T> {
void onAddButtonClicked();
void onDeleteButtonClicked();
void onItemClicked(T clickedItem);
void onItemSelected(T selectedItem);
}
void setPresenter(Presenter<T> presenter);
void setColumnDefinitions(List<ColumnDefinition<T>> columnDefinitions);
void setRowData(List<T> rowData);
Widget asWidget();
}
Какова идея этой разницы?
Какой должен выбрать?
Презентатор должен иметь возможность изменить вид. Таким образом, ведущий просто должен поддерживать ссылку на свои взгляды. Я не понимаю, что получилось бы, если бы представление и ведущий должны были реализовать друг друга. –
@Abhijeet Kashnia: Это два разных примера. Проверьте ссылки, они делают то же самое, но они реализованы по-разному. – Macarse
Даже в управлении историей с Activity и Places и MVP у нас есть активность, реализующая интерфейс просмотра! Как это MVP? –