事実
テーブルと属性のリスト(簡略化)で構成される次のデータ構造があります。
class Table {
List<Attribute> m_attributes;
}
abstract class Attribute {}
class LongAttribute extends Attribute {}
class StringAttribute extends Attribute {}
class DateAttribute extends Attribute {}
...
今、このデータ構造でさまざまなアクションを実行したいと考えています:
- XML表記で出力する
- テキスト形式で印刷する
- SQL 挿入ステートメントを作成する
- SQL 更新ステートメントを作成する
- SQL結果セットから初期化する
初挑戦
私の最初の試みは、これらすべての機能を 内に配置することでしAttribute
たが、その後、Attribute
は非常に異なる責任で過負荷になりました。
別
代わりにビジター パターンが非常にうまく機能するように思えますが、逆に言えば、この単純な構造にはやり過ぎのように見えます。
質問
これを解決する最もエレガントな方法は何ですか?