解释器模式
public class InterpreterPattern { public interface InterpreterImpl{ public void interprete(Context context); } public class Context{ private int params; private int results; public int getParams() { return params; } public void setParams(int params) { this.params = params; } public int getResults() { return results; } public void setResults(int results) { this.results = results; } public Context(int params) { super(); this.params = params; } } public class InterpreterMinus implements InterpreterImpl{ public void interprete(Context context){ context.setResults(context.getParams()-1); } } public class InterpreterPlus implements InterpreterImpl{ public void interprete(Context context){ context.setResults(context.getParams()+1); } } public void test(){ Context context = new Context(10); InterpreterMinus minus = new InterpreterMinus(); InterpreterPlus plus = new InterpreterPlus(); minus.interprete(context); System.out.println(context.getResults()); plus.interprete(context); System.out.println(context.getResults()); } public static void main(String[] args) { new InterpreterPattern().test(); } }
输出结果:
9
11
经过-1解释器解释一下结果就是9了
经过+1解释器解释一下结果就是 11了
其实这个和策略模式正好是反过来了,策略模式是将不同的策略传递到Context中,而解释器模式就是将不同的解释器拿来解释Context;


浙公网安备 33010602011771号