2

我需要创建并显示几个多项选择对话框。这些是带有 3 个或更多按钮的对话框,例如“复制/移动/链接”或“替换/覆盖/忽略”之类的东西。

我被三个相互竞争的实现想法所困扰,但它们似乎都不够好:

  • 为每个问题创建对话框,并将结果作为枚举返回,
  • 创建一个动态对话框,该对话框采用字符串的可变参数,使用字符串作为标签将它们转换为按钮,并返回所选字符串作为结果。
  • 创建一个接受 DialogChoice 可变参数的对话框,我将使用标签的 getText() 方法和选择 DialogChoice 时调用的 act() 方法创建一个接口。

第一个显然会产生冗余代码,但是第二个的返回类型相当脏。第三个似乎是迄今为止最好的,但它看起来像是某种伪装的功能代码,我不确定这是否是健康的 OO 做事方式。

那么,是否还有另一种我省略的解决方案,我是完全重新发明轮子,还是这三个想法中的一个是最好的?

编辑:我使用的是 JavaFx,所以没有可以重用的内置机制,但它更像是一个可以适应多种框架甚至多种语言的一般问题。我只包含了 Java 标记,以免人们与“enum”和“interface”关键字混淆。

4

3 回答 3

3

“第三个似乎是迄今为止最好的,但它看起来像是某种伪装的功能代码”

是什么让你这么说?对我来说听起来很糟糕。

DialogChoice 对应于一个动作并有一个描述。您将其封装在一个独立存在且可重用的对象中。

唯一的“问题”是它可能会增加冗长,使用匿名类和/或 Runnables ......

于 2012-08-03T15:44:00.347 回答
1

枚举您的响应(枚举,甚至是带有常量的旧 Java Bean),如果可能,让您的业务逻辑采用工厂模式。

于 2012-08-03T15:35:01.790 回答
0

标准 Swing JOptionPane 可以满足您的需求;可能最好使用它而不是重新发明轮子。

于 2012-08-03T15:35:12.477 回答