Interpreter Pattern
Main
static Expression buildInterpreter(){Expression e = new TerminalEpression("lion");Expression e1 = new TerminalEpression("bear");Expression e2 = new AndExpression(e, e1);return e2;}public static void main(String[] args) {String expression = "lion";String context = "lion bea2r";
Expression e = buildInterpreter();System.out.println(context + " is " + e.interpeter(context) );}
Interface (Abstract expression)
public interface Expression {
public boolean interpeter(String context);
}
Terminal Expression
public class TerminalEpression implements Expression {
private String data;public TerminalEpression(String data){this.data = data;}@Overridepublic boolean interpeter(String context) {StringTokenizer st = new StringTokenizer(context);while (st.hasMoreTokens()) {String test = st.nextToken();if(test.equals(data)){return true;}}return false;}}
NonTerminal Expression
public class AndExpression implements Expression {
private Expression exp1;private Expression exp2;public AndExpression(Expression exp1, Expression exp2){this.exp1 = exp1;
this.exp2 = exp2;}@Overridepublic boolean interpeter(String context) {return exp1.interpeter(context) && exp2.interpeter(context);}}
Comentarios
Publicar un comentario