数値を計算するという問題があり、この数値に従って特定のメソッドを呼び出さなければなりません。最終的に、各要素が別のメソッドを呼び出す列挙型を作成するというアイデアに行き着きました。この投稿で説明されているようにhttps://stackoverflow.com/a/4280838/2426316
ただ、その回答のポスターにもあまり良いデザインとは言えないと書いてあったので、どうしようか迷っています。この設計を使用するアルゴリズムを実装しても安全ですか? そうでない場合、他に何ができますか?
数値を計算するという問題があり、この数値に従って特定のメソッドを呼び出さなければなりません。最終的に、各要素が別のメソッドを呼び出す列挙型を作成するというアイデアに行き着きました。この投稿で説明されているようにhttps://stackoverflow.com/a/4280838/2426316
ただ、その回答のポスターにもあまり良いデザインとは言えないと書いてあったので、どうしようか迷っています。この設計を使用するアルゴリズムを実装しても安全ですか? そうでない場合、他に何ができますか?
Java Enum 型は、タイプ セーフな列挙型パターンの言語レベル サポート (構文糖衣) です。
タイプ セーフな列挙型パターンと Java 列挙型の利点の 1 つは (C# 列挙型などの他のソリューションと比較して)、抽象メソッドであってもメソッドをサポートするように設計されていることです。
可能な使用法:
詳細については:
まあ、安全性はおそらくここでは問題ではありません。ただし、従うのが難しい場合があります。
私の推奨事項は、次の 2 つの方法のいずれかでこれを構築することです。
explore(Level1 level){...}
渡されたレベルで区別する switch ステートメントを持つ関数を用意してください。