public void setOut(int out) {
this.in = String.valueOf( out ) ;
this.out = out;
}
public String getIn() {
return in;
}
}
package design.interpreter;
public abstract class AbstractExpression {
public abstract void interpret(Context context);
}
package design.interpreter;
public class MinusExpression extends AbstractExpression {
@Override
public void interpret(Context context) {
String in = context.getIn();
int v = Integer.parseInt(in);
context.setOut(--v);
}
}
package design.interpreter;
public class PlusExpression extends AbstractExpression {
@Override
public void interpret(Context context) {
String in = context.getIn() ;
int v = Integer.parseInt( in ) ;
context.setOut( ++v ) ;
}
public class Client {
public static void main(String[] args) {
Context context = new Context( "10" ) ;
new MinusExpression().interpret(context) ;
new PlusExpression().interpret(context) ;
new MinusExpression().interpret(context) ;
new PlusExpression().interpret(context) ;
System.out.println( context.getOut() );
}