
The Builder Pattern is a breeze in Robotlegs
public class ConcreteWidgetBuilder implements IWidgetBuilder {
[Inject]
public var injector:IInjector;
public function buildPart(parameterised:IThing):IWidget {
var widget:IWidget = injector.getInstance(IWidget);
widget.param = parameterised;
return widget;
}
}
If you want to control what gets instanced based on a parameter:
public class ConcreteWidgetBuilder implements IWidgetBuilder {
[Inject]
public var injector:IInjector;
public function buildPart(parameterised:IThing):IWidget {
var interface:Class;
switch(parameterised.style) {
case ThingConst.COOL:
interface = ICoolWidget;
break;
case ThingConst.HOT:
interface = IHotWidget;
break;
default:
interface = IDefaultWidget;
}
var widget:IWidget = injector.getInstance(interface);
widget.param = parameterised;
return widget;
}
}
Bit freakin’ sexy if you ask me.
© 2010 - VisFleet Ltd
No prawns were harmed in
the making of this website
Comments