我有以下格式的配置文件:
item1=true
value=test
item2=false
应用逻辑中的伪代码:
if(item1)
{
do something
}
else {
do something else
}
if(item2)
{
do something
}
else {
do something else
}
是否有处理这种配置的模式?那么代替条件语句使用其他东西?
答案 0 :(得分:1)
这是使用策略模式的最佳时机,您可能希望遵循the answer from this code,但您将根据布尔值执行特定策略
This是来自IntelliJ名为
的人的优秀写作示例用策略模式替换条件逻辑
答案 1 :(得分:1)
答案 2 :(得分:1)
您可以使用命令模式。首先,您可以在配置文件中创建每个选项的命令。工厂模式是最好的。旅游工厂可以创建一系列命令。然后循环运行这些命令。
可以使用enum
:
public enum CommmandFactory {
item1 {
@Override
public ConfCommand create(String value) {
return new ItemOneCmd(value);
}
},
item2 {
@Override
public ConfCommand create(String value) {
return new ItemTwoCmd(value);
}
},
public abstract ConfCommand create(String value);
}
现在使用此工厂如下:
Properties props = new Properties();
props.load(yourInuptStream);
for (Entry<Object, Object> e : props.entrySet()) {
CommmandFactory.valueOf((String)e.getKey()).create((String)e.getValue()).execute();
}
答案 3 :(得分:1)
根据您的具体需求,您可能会考虑使用“功能切换”:http://martinfowler.com/bliki/FeatureToggle.html或http://www.togglz.org/