実行時に、ユーザーの動作と履歴に基づいて、並べ替え操作を実行する必要があります。私の場合、SortByDate/SortByDemand/SortByConsumption
は文字列を返すだけです。または、order by句(複雑な場合もあります)と言うことができます。
ほとんどのフォーラムで、ソートには戦略パターンを使用する必要があることがわかりました。
ストラテジーパターンの画像をここに添付しました。Utilクラスは、3つのクラスのうちの1つのオブジェクト、つまり、SortByDate / SortByDemand/SortByConsumptionを呼び出します。
したがって、新しい並べ替え方法を定義するたびに、utilクラスを変更し、新しいストラテジーを定義する必要があります。
ただし、ファクトリを使用して実装した場合、utilクラスはファクトリを呼び出すだけで、呼び出すクラスを処理します。だから私は工場を使うべきだと思います。
しかし、私は戦略がそのようなニーズに最適なパターンであることを読みました。なぜここで戦略パターンが優れているのですか?