您的位置:首页 > 其它

行为型模式-解释器

2015-07-14 20:49 423 查看

结构图



模式说明

扩展点在AbstractExpression实现类
Context是这个解释器的语法定义,不同的Expression实现代表有不同的语法实现
给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子

客户端

public static void main(String[] args) {
Contextctx = new Context();
List<AbstractExpression>list = newArrayList<AbstractExpression>();
list.add(new TerminalExpression());
list.add(new NonTerminalExpression());
list.add(new TerminalExpression());
for (AbstractExpression exp : list) {
exp.interpret(ctx);
}
}


类设计

public interfaceAbstractExpression {
public void interpret(Contextcontext);
}
public class Context {
private String input;
private String output;

public String getInput() {
return input;
}

public void setInput(Stringinput) {
this.input = input;
}

public String getOutput() {
return output;
}

public void setOutput(Stringoutput) {
this.output = output;
}
}
public classTerminalExpression implements AbstractExpression {

@Override
public void interpret(Contextcontext) {
System.out.println("terminalexpression.");

}

}
public classNonTerminalExpression implements AbstractExpression {

@Override
public void interpret(Contextcontext) {
System.out.println("non-terminalexpression.");

}

}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: