用户界面-策略模式-从UI输入



我有一个非常简单的问题。我有一个用户界面,提示用户选择"选项a"或"选项B"(实际选项按钮)。一旦用户选择,我就会调用一个连接到数据库的存储库来获取一些数据。

选项A将需要特定类型的查询,而选项B将生成不同的查询。在不涉及细节的情况下,我实现了一个名为OptionAStrategy和OptionBStrategy的策略模式,该模式将生成正确的查询,以便存储库可以使用该查询。

现在的问题是,我如何传递用户选择"选项A"或"选项B"的事实。我可以传递实际的字符串,比如"选项A或"选项B",并将该字符串传递给StrategyFactory以实例化正确的OptionStartegy。但是这是一个好的做法吗

UI如何传达所选的UI选项,以便策略工厂能够正确地实例化策略的正确实例?假设策略位于存储库级别

提前感谢干杯

凹凸:没有答案-低视图:-(

您可以将策略定义为ActionActionListener的实现,然后将它们附加到特定的UI元素,例如JButton。用户单击后,将执行该操作
例如,使用JavaSwing:

final Action optionA = new AbstractAction("Option A") {
    public void actionPerformed(ActionEvent e){
        // option A code
    }
};
final JButton optionAButton = new JButton(optionA);
// add button to UI
  • 如何使用操作
  • AbstractAction

使用Swing操作的一个好处是,许多UI组件可以从Action构建,从而允许您提供多种不同风格的UI机制,这些机制都执行相同的功能。

下一步是创建工厂,将这些不同的Action提供给某种特定于应用程序的控制器,然后将它们注入UI组件。

您需要有上下文和策略接口。在您的上下文中,如果/else选择适当的策略或使用工厂类来启动,您可以选择自己。看这里。

相关内容

  • 没有找到相关文章

最新更新