私はこれが戦略パターンの下にあるかどうか疑問に思っていました。これは戦略パターンですか?
私はIConvertersのリストを持っています(ファイルをingameアセットに変換しています)。それらはすべてConverterManagerの内部にあります。すべてのIConverterは、それが探している拡張タイプを持っています。では、拡張子が.exeのファイルがあるとします。 ConverterManagerは、.exe拡張子を検索するコンバータを探します。それが存在すれば、それはファイルのパスを通過し、そうでなければ何もしません。
ファイルの拡張子に基づいて選択する動作を計算しているので、これは戦略パターンかどうか疑問に思っていました。
ありがとうございます。
ここでお手伝いできますか? 私の例では、ConverterManagerがすべてのコンバータを保持しており、エクステンションタイプでそれらを選択しているか、コンバーターと何か関係があるので、Single Responsibility原則に従っていませんか? 現在、ConverterManagerはコンバーターを保持しており、指定された拡張子のコンバーターを選択します(IConverterが拡張子を戻します)。そして、IConverterはアセットへの変換を行います。 – patrick
拡張子に基づいて選択されたIConverterを使用するクラスがまだわかりません。 –
さて、アセットフォルダ内のすべてのファイルを読み込むクラスがあります。次に、 "test.txt、test2.exe、test3.js"のようなリストを作成することができます。次に、それらがすべて見つかると、ファイルのリストをループし、それらのすべてをConverterManagerに送信します。次に、ConverterManagerは、拡張子に基づいてIConverterを見つけ出し、その上に関数ProcessFile(path)を使用します。 (IConverterはfilereaderclassに戻されません)。 ConverterManagerが返す唯一のものは、変換で何が起きているかを示す応答データオブジェクトです(しかし、これは実際には関係ありません)。 – patrick