无名 发表于 2022-5-8 18:43:27

【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]
查看完整版本: 【HC】【考核】设计模式——解释器模式