Рассмотрим следующий псевдокод, реализующий паттерн MVP:MVP шаблон дизайна лучшей практики
interface Presenter {
void onSendClicked();
}
interface View {
String getInput();
void showProgress();
void hideProgress();
}
class PresenterImpl implements Presenter {
// ...ignore other implementations
void onSendClicked() {
String input = view.getInput();
view.showProgress();
repository.store(input);
view.hideProgress();
}
}
class ViewImpl implements View {
// ...ignore other implementations
void onButtonClicked() {
presenter.onSendClicked();
}
String getInput() {
return textBox.getInput();
}
void showProgress() {
progressBar.show();
}
void hideProgress() {
progressBar.hide();
}
}
А вот альтернативная реализация MVP шаблона:
interface Presenter {
void saveInput(String input);
}
interface View {
void showProgress();
void hideProgress();
}
class PresenterImpl implements Presenter {
// ...ignore other implementations
void saveInput(String input) {
view.showProgress();
repository.store(input);
view.hideProgress();
}
}
class ViewImpl implements View {
// ...ignore other implementations
void onButtonClicked() {
String input = textBox.getInput();
presenter.saveInput(intput);
}
void showProgress() {
progressBar.show();
}
void hideProgress() {
progressBar.hide();
}
}
Какой из них более правильная реализация MVP шаблон? Зачем?
Обзор кода может быть лучшим местом для этого вопроса, вы получите хорошие ответы там: http://codereview.stackexchange.com/ –
@Jezzabeanz ему нужен настоящий код для этого, хотя и не псевдокод. – Riker
Как я могу просить мнение, не спрашивая мнения? – CarlLee