gpt4 book ai didi

java - 寻找基于输入参数的类创建和配置模式

转载 作者:行者123 更新时间:2023-12-01 04:23:45 27 4
gpt4 key购买 nike

我需要根据我收到的参数值创建一个复杂的配置对象。

我的输入是 2 个简单变量和一个配置对象。这两个变量的组合以及配置对象的内部结构将决定输出类的配置(始终是相同的类型)

使用简单的 if-else 来做到这一点,它看起来像这样:

if (a == 1 && b == 1) {
//do some testing on the input object, configure and return the output object
else if (a == 2 && b == 1) {
//do some different testing on the input, configure and return the output.
}

等等。

a 和 b 可以保存大约 5 个不同的值,根据 a 和 b 的值,我必须测试输入对象中的不同内容。

我不太确定解决这个问题的最佳方法。我的第一个想法是拥有某种 Command Pattern使用如下方法:

public interface Command {
public OutputConfig execute(InputConfig config);
}

并将我潜在的 a 和 b 组合存储在 Map<Pair<A,B>, Command> 中用于查找。

我觉得我正在寻找一些工厂/命令/构建器模式,但不确定实现此目的的最佳方法。

提前致谢。

最佳答案

我认为您需要策略模式。您可以使用方法定义接口(interface):

interface Configure{

public YourObject excecute(YourObject o);

}

您可以按照您想要的各种方式实现该接口(interface),并将其声明为成员字段。然后根据变量的值实例化适当的类。

如果您想保存对象,那么您也可以使用命令模式

更新:在软件工程中,通常没有绝对的真理。

使用命令模式,您已经有了一个执行某些任务的类,并且您希望将它们保存为从接口(interface)派生的类中的对象,以便稍后使用它们等。我不这样做认为您的情况需要这种方法,因为您只需要定义为接口(interface)方法的不同功能。因此,在您的情况下,策略模式是一种更优雅的方法。

关于java - 寻找基于输入参数的类创建和配置模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18687089/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com