我需要根据收到的参数值创建一个复杂的配置对象。
我的输入是2个简单变量和一个配置对象。 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.
}
然后。
大约有5个不同的值,& b可以保持并取决于&的值。 b,我将不得不在输入对象中测试不同的东西。
我不确定解决这个问题的最佳方法。 我的第一个想法是使用类似的方法{<1}}。
Command Pattern
并存储我的潜力a&amp; b public interface Command {
public OutputConfig execute(InputConfig config);
}
中的组合用于查找。
我觉得我正在寻找一些Factory / Command / Builder模式,但不确定实现它的最佳方法。
提前致谢。
答案 0 :(得分:0)
我认为你需要Strategy Pattern
。您可以使用方法定义接口:
interface Configure{
public YourObject excecute(YourObject o);
}
您可以通过各种方式实现界面,并将其声明为成员字段。然后根据变量的值实例化相应的类。
如果您想保存对象,那么您也可以使用Command Pattern
。
更新: Ok在软件工程中通常没有绝对的事实。
使用Command Pattern
你已经有了一个执行某些任务的类,并且你想将它们保存为派生自接口的类中的对象,以便以后使用它们等等。我不认为你的情况需要这样的方法,因为您只需要将各种功能定义为接口方法。因此,Strategy Pattern
是一种更优雅的方法。