У меня есть мысленные эксперименты, исследующие жизнеспособность улучшения класса Place.Предполагая, что Google предоставит нам любезность такого усовершенствования, будет ли полезным следующее усовершенствование класса Place?
Допустим, что класс Place улучшен, чтобы иметь метод
setActivity(Activity act)
Тогда мы сможем сделать это:
public class StartActivity extends AbstractActivity implements Presenter {
private ClientFactory clientFactory;
private String name;
public StartActivity(StartPlace place, ClientFactory clientFactory) {
this.clientFactory = clientFactory;
this.name = place.getName();
place.setActivity(this);
}
}
Так что ActivityMapper будет настолько простым ...
public class DenLapehActivityMapper
implements ActivityMapper{
@Override
public Activity getActivity(Place place){
return place.getActivity();
}
}
Однако, мой мысленный эксперимент, взвешивающий текущую ситуацию,ведет меня к необходимости сделать это
abstract public class DenLapehPlace
extends Place{
private Activity activity;
public Activity getActivity(){
return activity;
}
public void setActivity(Activity activity){
this.activity = activity;
}
}
public class DenLapehActivityMapper
implements ActivityMapper{
@Override
public Activity getActivity(Place place){
if (place instanceof DenLapehPlace)
return ((DenLapehPlace)place).getActivity();
return null;
}
}
Или, что еще хуже, следуя примерам / учебникам ...
public class DenLapehActivityMapper
implements ActivityMapper{
@Override
public Activity getActivity(Place place){
if (place instanceof AyamDenLapehPlace)
return KurungAyamActivity;
if (place instanceof ItekDenLapehPlace)
return KurungItekActivity;
if (place instanceof KabauDenLapehPlace)
return KurungKabauActivity;
if (place instanceof KancilDenLapehPlace)
return KurungKancilActivity;
etc, etc, etc ...
return null;
}
}
Если бы вы были командой разработчиков GWT, не было бы каких-либо техническихмотивация (или демотивация), чтобы сделать это изменение?Еще лучше, если вы являетесь командой разработчиков GWT.почему бы вам не сделать это изменение?