Javaで戦略パターンを使いたい。ただし、コードベースに大量のファイルを追加したり、詳細なコードを記述したりすると、上司はそれを嫌います。戦略パターンでは、インターフェイス用に1つのファイルを作成し、次に5つの追加ファイルを作成して、5つの可能な戦略ごとにクラスを作成する必要があるようです。
より少ないファイルとより少ないコードでJavaで戦略パターンを表現する方法はありますか?
私の戦略のバリエーションを、組み立てが簡単な列挙型または1つのセットで表すことができれば理想的だと思います。
Javaで戦略パターンを使いたい。ただし、コードベースに大量のファイルを追加したり、詳細なコードを記述したりすると、上司はそれを嫌います。戦略パターンでは、インターフェイス用に1つのファイルを作成し、次に5つの追加ファイルを作成して、5つの可能な戦略ごとにクラスを作成する必要があるようです。
より少ないファイルとより少ないコードでJavaで戦略パターンを表現する方法はありますか?
私の戦略のバリエーションを、組み立てが簡単な列挙型または1つのセットで表すことができれば理想的だと思います。
上司と一緒に座って、ファイルが少ないことを上司に説明する必要があると思います!=良いコード。少なくとも、パターン自体と、それぞれが独自の特定の目的を持つ複数のクラスを持つことが、テストやメンテナンスなどにどのように適しているかを説明するようにしてください。
個人的には、適切なポリモーフィズムによってコードがはるかに理解しやすくなる場所について、多くのIFステートメントが散らばっているコードがより冗長であることがわかります。
PS:はい、列挙型は匿名のサブクラス化構造を使用して動作することができます。
public enum Foo {
BAR() {
public void baz() { ... }
};
public abstract void baz();
}
どうしても必要な場合を除いて、それを使用することをお勧めします。