2

いくつかの複数選択ダイアログを作成して表示する必要があります。これらは、たとえば「コピー/移動/リンク」や「置換/上書き/無視」など、3つ以上のボタンを備えたダイアログです。

私は3つの競合する実装のアイデアに固執していますが、どれも十分ではないようです。

  • 問題ごとにダイアログを作成し、結果を列挙型として返します。
  • 文字列のvarargを受け取る動的ダイアログを作成し、文字列をラベルとして使用してボタンに変換し、選択した文字列を結果として返します。
  • DialogChoiceのvarargを受け取るダイアログを作成します。これは、ラベルのgetText()メソッドと、DialogChoiceが選択されたときに呼び出されるact()メソッドを使用して作成するインターフェイスです。

最初のものは明らかに冗長なコードを生成しますが、2番目のもののリターンタイプはかなり汚いです。3つ目はこれまでのところ最高のようですが、ある種の偽装された関数型コードのように見え、それがOOの健全な方法であるかどうかはわかりません。

それで、私が省略した別の解決策はありますか、私は車輪を完全に再発明しますか、それともこれらの3つのアイデアの1つが最良のものですか?

編集:私はJavaFxを使用しているので、再利用できる組み込みのメカニズムはありませんが、複数のフレームワーク、さらには複数の言語に適応できる一般的な質問です。人々を「enum」および「interface」キーワードと混同しないように、Javaタグのみを含めました。

4

3 に答える 3

3

「これまでのところ 3 番目が最良のようですが、ある種の偽装された機能コードのように見えます」

そう言う理由は何ですか?それは私にはおっと聞こえます。

DialogChoice はアクションに対応し、説明があります。それを、それ自体で生きて再利用可能なオブジェクトにカプセル化します。

唯一の「問題」は、匿名クラスやランナブルを使用して冗長性を高める可能性があることです...

于 2012-08-03T15:44:00.347 に答える
1

応答を列挙し (Enum、または定数を含む古き良き Java Bean でさえ)、可能であれば、ビジネス ロジックをファクトリ パターンにします。

于 2012-08-03T15:35:01.790 に答える
0

Standard Swing JOptionPaneは、必要なことを行います。車輪を再発明する代わりに、おそらくそれを使用するのが最善です。

于 2012-08-03T15:35:12.477 に答える