用于处理应用配置的设计模式

时间:2014-01-16 16:10:02

标签: java design-patterns

我有以下格式的配置文件:

item1=true
value=test
item2=false
应用逻辑中的

伪代码:

if(item1)
{
   do something
}
else {
   do something else
}

if(item2)
{
   do something
}
else {
   do something else
}

是否有处理这种配置的模式?那么代替条件语句使用其他东西?

4 个答案:

答案 0 :(得分:1)

这是使用策略模式的最佳时机,您可能希望遵循the answer from this code,但您将根据布尔值执行特定策略

This是来自IntelliJ名为

的人的优秀写作示例
  

用策略模式替换条件逻辑

答案 1 :(得分:1)

您可以使用多种模式,我可以使用Interpreter pattern

Interpreter Pattern

Command pattern

Command Pattern

Strategy pattern

Stategy Pattern

答案 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.htmlhttp://www.togglz.org/