例:ホイール、ブレーキ、エンジン、クラッチ、オートボックス、マニュアルボックス、エレクトリックウィンドウ、リアパークセンサー、ヒートシートなど、いくつかのタイプがあります。これらはすべてICarPartマーカーインターフェイスを継承します(属性(javaアノテーション)である可能性がありますが、この段階では重要ではありません)。
次に、すべての車種を表すことができる車のクラスを作成します。
class Car
{
string Name;
DateTime creationDate;
string ID;
IList<ICarPart> parts;
}
それから私は車を作るための工場を書きます。工場では、さまざまな車種の成分リストであるXMLを参照できます。例(フォーマットは無視してください。これは単なる説明です):
<ExpensiveCar>
<Name>Expensive Car</Name>
<Parts>
<HeatedSeats/>
<Wheel count=4/>
<RearParkingSensor/>
<ElectricWindow type=FrontAndBack/>
</Parts>
</ExpensiveCar>
工場はこの成分リストを解析し、車のオブジェクトを作成します。部品がコード化され、成分リストがXMLで記述されていれば、新しい車種がシステムで利用できるようになります。
質問:
- このパターンは何と呼ばれていますか?それとも、複数のパターンを組み合わせただけですか?
- これはアンチパターンですか?
- これをUMLで表現するにはどうすればよいですか?パーツとベースカークラスのクラス図を作成できました。現在サポートされているそのクラスのインスタンスとそれらが持つパーツをどのように表示しますか?
前もって感謝します。不明な点がある場合はコメントしてください。詳細を修正/更新/提供します。