概念
这个模式不是特别常用,好像几乎见不到,先看看代码,以后有时间再补充。
示例代码
interface Expression {
public String interpret(String context);
}
class TerminalExpression implements Expression {
private String data;
public TerminalExpression(String data) {
this.data = data;
}
@Override
public String interpret(String context) {
return this.data+context;
}
}
class RegularExpression implements Expression {
private Expression expr1 = null;
private Expression expr2 = null;
public RegularExpression(Expression expr1, Expression expr2) {
this.expr1 = expr1;
this.expr2 = expr2;
}
@Override
public String interpret(String context) {
return expr1.interpret(context)+expr2.interpret(context);
}
}
public class Client {
public static Expression Result() {
Expression expression1=new TerminalExpression("a");
Expression expression2=new TerminalExpression("b");
return new RegularExpression(expression1,expression2);
}
public static void main(String[] args) {
Expression a=Result();
System.out.println(a.interpret("----"));
}
}
输出结果
a----b----