我需要创建并显示多个多选对话框。这些是带有3个或更多按钮的对话框,例如“复制/移动/链接”或“替换/覆盖/忽略”等等。
我坚持使用三种相互竞争的实施方案,但这些方法似乎都不够好:
第一个显然会产生冗余代码,但第二个代码的返回类型非常脏。第三个似乎是迄今为止最好的,但它看起来像某种伪装的功能代码,我不确定这是否是健康的OO做事方式。
那么,有没有我省略的另一种解决方案,我是完全重新发明轮子,还是这三个想法中最好的一个?
编辑:我正在使用JavaFx,因此没有可以重用的内置机制,但它更多的是一个可以适应多个框架甚至多种语言的一般性问题。我只包含了Java标记,以免混淆“enum”和“interface”关键字。
答案 0 :(得分:3)
“到目前为止,第三个似乎是最好的,但它看起来像某种伪装的功能代码”
是什么让你这么说的?这对我来说听起来很不错。
DialogChoice对应于某个操作并具有说明。您将其封装在一个独立存在且可重用的对象中。
唯一的“问题”是它可能使用匿名类和/或Runnables来增加冗长...
答案 1 :(得分:1)
枚举您的响应(Enum,甚至包含常量的旧Java Bean),如果可能,请将您的业务逻辑设置为工厂模式。
答案 2 :(得分:0)
Standard Swing JOptionPane做你想做的事;可能最好用它而不是重新发明轮子。