Rumah > Java > javaTutorial > Java实现解释器(Interpreter)模式的示例代码

Java实现解释器(Interpreter)模式的示例代码

黄舟
Lepaskan: 2017-03-11 11:43:40
asal
2448 orang telah melayarinya

Java实现解释器(Interpreter)模式的示例代码

/**
 * 声明一个抽象的解释操作
 * @author stone
 *
 */
public interface Interpreter {
	
	public void interpret(Context context);  //实际中,可以有个返回的类型,定义解释出的数据对象
}
Salin selepas log masuk
public class XmlSaxInterpreter implements Interpreter {

	@Override
	public void interpret(Context context) {
		System.out.println("xml sax Interpreter:" + context.getData());
	}

}
Salin selepas log masuk
public class XmlDomInterpreter implements Interpreter {

	@Override
	public void interpret(Context context) {
		System.out.println("xml dom Interpreter:" + context.getData());
	}

}
Salin selepas log masuk
/**
 * 包含解释器之外的一些信息
 * @author stone
 *
 */
public class Context {
	private String data;
	
	public String getData() {
		return data;
	}
	
	public void setData(String data) {
		this.data = data;
	}
}
Salin selepas log masuk
/*
 * 解释器(Interpreter)模式
 * 给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中句子。 属于行为型模式
 * 应用场合,如编译器、正则表达式、语言规范...
 * 解释器模式在实际的系统开发中使用的非常少,因为它会引起效率、性能以及维护等问题,
 */
public class Test {
	public static void main(String[] args) {
		Context context = new Context();
		context.setData("一段xml数据");
		new XmlSaxInterpreter().interpret(context);
		new XmlDomInterpreter().interpret(context);
	}
}
Salin selepas log masuk

Atas ialah kandungan terperinci Java实现解释器(Interpreter)模式的示例代码. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan