2012-02-03 14 views
0

戦略パターンを使用して、異なるフォーマットのファイルを解析しています。戦略パターンのバリエーション

各戦略は、ファイルから解析された文字列のリストを返します。現在、ファイルタイプの1つからさらにデータを返すための要件が​​導入されているため、戦略の1つに更新が必要です。これを達成するための共通の慣行はありますか?私は将来の余分なデータを保存することができましたが、これは残酷だと思いますか?

答えて

0

私が考えている解決策は、余分なパラメータを格納するカスタムオブジェクトタイプのリストを返すことです。

0

基本戦略インタフェースを継承し、必要な新しいデータを公開する新しいインタフェースを作成することができます。次に、特定のファイルの具体的な戦略の実装が、拡張インタフェースを実装します。

特定のファイルに対して具体的な戦略クラスを選択して実行すると、その拡張インタフェースが実装されているかどうかを確認し、それに応じて余分なデータを処理できます。

このようにする利点は、余分なパラメータの自由形式のリストを持たずに、拡張されたインタフェースでデータコントラクトを実際に書くことができることです。また、必要に応じて他の戦略でもインタフェースを再利用できます。

欠点は、他の多くの戦略が共通のものから逸脱する可能性がある場合、大きなインターフェース構造で終わる可能性があるということです。