Bridge パターンを勉強していますが、質問があります。以下の私のコード例に関して、実装者である必要がありますか、それとも実装LightSwitch
者として問題ありませんか? 私の問題は、誰が実装者でなければならないかを知ることです。両方の組み合わせが任意の順序で機能するようです。私がはっきり言っているかどうかはわかりません。FanSwitch
Slider/RadialImplementation
class Main
{
static function main()
{
new Main();
}
public function new()
{
var s:Switch;
s = new LightSwitch();
s.implementation = new SliderImplementation();
s.on();
s.off();
s.implementation = new DialImplementation();
s.on();
s.off();
s = new FanSwitch();
s.implementation = new SliderImplementation();
s.on();
s.off();
s.implementation = new DialImplementation();
s.on();
s.off();
}
}
class Switch
{
public var implementation:SwitchImplementation;
public function new(){}
public function on(){}
public function off(){}
}
class LightSwitch extends Switch
{
public override function on()
{
trace("Light");
implementation.on();
}
public override function off()
{
implementation.off();
}
}
class FanSwitch extends Switch
{
public override function on()
{
trace("Fan");
implementation.on();
}
public override function off()
{
implementation.off();
}
}
class SwitchImplementation
{
public function new(){}
public function on(){}
public function off(){}
}
class SliderImplementation extends SwitchImplementation
{
public override function on()
{
trace("> Slider Switch [on]");
}
public override function off()
{
trace("> Slider Switch [off]");
}
}
class DialImp lementation extends SwitchImplementation
{
public override function on()
{
trace("> Dial Switch [on]");
}
public override function off()
{
trace("> Dial Switch [off]");
}
}