次のシナリオを設計するためにどのパターンを使用するかについて混乱しています。
Interface GearBox {
int upshift();
int downshift();
int reverse();
}
AutoGearBox implements GearBox{...}
ManualGearBox implements GearBox{...}
ここで、階層に DualClutchGearBox を追加します。以前のギアボックスはすべてシングル クラッチです。どうすればそれを行うことができますか?
デコレータあり -->
DualClutchDecorator implements GearBox{
DualClutchDecorator(GearBox box){...}
}
ブリッジあり -->
GearBox{
GearBoxImpl impl;
....
}
AutoGearBox implements GearBox{...}
ManualGearBox implements GearBox{...}
abstract class GearBoxImpl{}
SingleClutchImpl extends GearBoxImpl{...}
DualClutchImpl extends GearBoxImpl{...}
どちらが優れているか、またその理由は何ですか?