いくつかの複数選択ダイアログを作成して表示する必要があります。これらは、たとえば「コピー/移動/リンク」や「置換/上書き/無視」など、3つ以上のボタンを備えたダイアログです。
私は3つの競合する実装のアイデアに固執していますが、どれも十分ではないようです。
- 問題ごとにダイアログを作成し、結果を列挙型として返します。
- 文字列のvarargを受け取る動的ダイアログを作成し、文字列をラベルとして使用してボタンに変換し、選択した文字列を結果として返します。
- DialogChoiceのvarargを受け取るダイアログを作成します。これは、ラベルのgetText()メソッドと、DialogChoiceが選択されたときに呼び出されるact()メソッドを使用して作成するインターフェイスです。
最初のものは明らかに冗長なコードを生成しますが、2番目のもののリターンタイプはかなり汚いです。3つ目はこれまでのところ最高のようですが、ある種の偽装された関数型コードのように見え、それがOOの健全な方法であるかどうかはわかりません。
それで、私が省略した別の解決策はありますか、私は車輪を完全に再発明しますか、それともこれらの3つのアイデアの1つが最良のものですか?
編集:私はJavaFxを使用しているので、再利用できる組み込みのメカニズムはありませんが、複数のフレームワーク、さらには複数の言語に適応できる一般的な質問です。人々を「enum」および「interface」キーワードと混同しないように、Javaタグのみを含めました。