1. 程式人生 > >java 23種常用設計模式之解析器模式(Interpreter)

java 23種常用設計模式之解析器模式(Interpreter)

直譯器的的適用範圍比較小,一般主要用在各種OPP開發的直譯器中,比如正則表示式的直譯器,或者一個數學表示式的直譯器。

下面我們就以解釋數學表示式為例子,講講什麼是直譯器模式。

原始碼:

package com.freedom.interpreter;

public class Context {
	
	private int a;
	private int b;
	
	public Context(int a, int b){
		this.a = a;
		this.b = b;
	}

	public int getA() {
		return a;
	}

	public void setA(int a) {
		this.a = a;
	}

	public int getB() {
		return b;
	}

	public void setB(int b) {
		this.b = b;
	}

	
}

package com.freedom.interpreter;

public interface Expression {
    public int interpret(Context context);

}

package com.freedom.interpreter;

public class Plus implements Expression {

    @Override
    public int interpret(Context context) {
        return context.getA()+context.getB();
    }

}

package com.freedom.interpreter;

public class Test {

    public static void main(String[] args) {
        int resultPlus = new Plus().interpret(new Context(3, 5));
        System.out.println(resultPlus);

    }

}
這就是一個簡單的直譯器模式例子,大家可以練習copy一個減法直譯器出來。由於比較簡單,這裡就不累贅了!

最近要連上13天班,是在是夾縫裡擠出來的時間繼續寫了……