Roo, . , , GWT MVP Development with Activities and Places (: , ):
public class AppActivityMapper implements ActivityMapper {
...
@Override
public Activity getActivity(Place place) {
if (place instanceof HelloPlace)
return new HelloActivity((HelloPlace) place, clientFactory);
else if (place instanceof GoodbyePlace)
return new GoodbyeActivity((GoodbyePlace) place, clientFactory);
return null;
}
}
, "switch + getOperation()" "if + instanceof". , Activity new. Injection Dependency.
, , DI, , ActivityMapper, Place:
public Activity getActivity(Place place) {
if (place instanceof HelloPlace)
return helloActivityFactory.build((HelloPlace) place);
else if (place instanceof GoodbyePlace)
return goodbyeActivityFactory.build((GoodbyePlace) place);
return null;
}
. , - " " ( factory ). :
Map<String, ActivityFactory> activityMap;
public Activity getActivity(Place place) {
ActivityFactory factory = activityMap.get(place.getOperation());
if (factory != null)
return factory.build(place);
return null;
}
... ActivityFactory, (, , build() place ).
( !), - , Roo: " GWT MVP " " MVP" , MVP DI, " , ". , , Injection Dependency. , Roo , .