【HC】【考核】设计模式——解释器模式
这里春日野悠[滑稽]http://cdn.u1.huluxia.com/g3/M02/29/F6/wKgBOV3AW0OAWBU7AACjFsHEhKE311.jpg
1 简介解释器模式(Interpreter Pattern)定义:定义语言的语法,并建立一个解释器来解释该语言中的句子,这里的“语言”指使用规定格式和语法的代码。它用于描述如何构成一个简单的语言解释器,主要应用于使用面向对象语言开发的编译器和解释器设计。http://cdn.u1.huluxia.com/g3/M02/29/F6/wKgBOV3AW0OAX4dbAAB8AG34BR0624.jpg
2 代码(1)环境类(Context)import java.util.HashMap; public class Context { //存储公共信息,用于在进行具体的解释操作时从中获取相关信息 private HashMap<String,Object> map=new HashMap(); public void assign(String key,String value) { //往环境类中设值 } public Object lookup(String key) { //获取存储在环境中的值 return map.get(key); }}(2)抽象表达式public abstract class Expression { public abstract void interpret(Context ctx);}(3)终结符表达式public class TerminalExpression extends Expression { @Override public void interpret(Context ctx) { //对终结表达式的解释操作 }}(4)非终结符表达式public class NonterminalExpression extends Expression { private Expression left; private Expression right; NonterminalExpression(Expression left,Expression right){ this.left=left; this.right=right; } @Override public void interpret(Context ctx) { //递归调用每一个组成部分的 interpret() 方法 //在递归调用时指定组成部分的连接方式,即非终结符的功能 }}
页:
[1]