Design Pattern: MVP -> MODEL-VIEW-PRESENTER
Interaction with user - presenter calls logic on model - model updates presenter - presenter updates view and/or calls new logic on model
now assume there is code in model that throws errors (parameter validation for example):
in presenter:
try {
model.doSomething();
} catch (error) {
view.showError(blabla);
}
is it better this way, or is it better like this:
in presenter:
model.doSomething();
in model:
if (name.length < 2) {
notifyObservers(ModelEvent.NOT_ENOUGH_NAME_LENGTH);
return;
}
then in presenter:
update(ModelEvent event) {
switch (event) {
case NOT_ENOUGH_NAME_LENGTH:
view.showError(blabla);
break;
}
}