Design patterns 策略模式-从UI输入

Design patterns 策略模式-从UI输入,design-patterns,user-interface,Design Patterns,User Interface,我有一个非常简单的问题。我有一个用户界面,提示用户选择“选项a”或“选项B”(实际选项按钮)。一旦用户选择,我就调用连接到数据库的存储库来获取一些数据 选项A将需要某种类型的查询,选项B将生成不同的查询。在不涉及细节的情况下,我实现了一个名为optionstrategy和OptionBStrategy的策略模式,该模式将生成正确的查询,以便存储库可以使用该查询 现在的问题是如何传递用户选择“选项A”或“选项B”的事实。我可以传递实际字符串,比如“选项A”或“选项B”,并将该字符串传递给Strat

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

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

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

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


凹凸:无答案-低视图:-(

您需要有上下文和策略接口。在您的上下文中,您可以选择是否选择适当的策略或使用factory类来启动。请参见。

您可以将策略定义为或
ActionListener
的实现,然后在使用时将其附加到特定的UI元素,例如r单击,将执行该操作。
例如,使用Java Swing:

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
使用Swing操作的一个好处是,许多UI组件都可以从
操作
构建,从而允许您提供多种风格各异的UI机制,所有这些机制都可以执行相同的功能

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