路一步步走>> 設計模式十五:Interpreter-直譯器
阿新 • • 發佈:2018-12-08
package com.test.DPs.XingWei.Interpreter; /** * 行為型:Interpreter-直譯器 外觀:作用面為類 * * 用途:給定一種語言(物件),定義它的文法的一種表示(物件型別),定義一個直譯器,這個解釋其使用該表示來解釋語言中的句子。 * * 理解:語言(物件)+語言表述(物件屬性(型別))+直譯器解釋(屬性操作)具體含義 */ interface Expression{ int interpret(Context context); } class Plus implements Expression{ @Override public int interpret(Context context){ return context.getNum1()+context.getNum2(); } } class Minus implements Expression{ @Override public int interpret(Context context){ return context.getNum1()-context.getNum2(); } } class Context{ private int num1; private int num2; public Context(int num1, int num2){ this.num1 = num1; this.num2 = num2; } public int getNum1(){ return num1; } public void setNum1(int num1){ this.num1 = num1; } public int getNum2(){ return num2; } public void setNum2(int num2){ this.num2 = num2; } } class Test { public static void main(String[] args) { // 計算9+2-8的值 int result = new Minus().interpret((new Context(new Plus() .interpret(new Context(9, 2)), 8))); System.out.println(result); } }