`

【转】设计模式——解释器模式(Interpreter)

 
阅读更多

一般主要应用在OOP开发中的编译器的开发中,所以适用面比较窄。

Context类是一个上下文环境类,Plus和Minus分别是用来计算的实现

 

public interface Expression {

public int interpret(Context context);

}

 

 

public class Plus implements Expression {

 

 

@Override

public int interpret(Context context) {

return context.getNum1()+context.getNum2();

}

}

 

 

public class Minus implements Expression {

 

 

@Override

public int interpret(Context context) {

return context.getNum1()-context.getNum2();

}

}

 

 

public 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;

}

 

 

}

 

 

public 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);

}

}

输出正确的结果:3。

解释器模式用来做各种各样的解释器,如正则表达式等的解释器等等!

--------------------- 

作者:panzihao_beijing 

来源:CSDN 

原文:https://blog.csdn.net/PanZiHao_BeiJing/article/details/80448213 

版权声明:本文为博主原创文章,转载请附上博文链接!

分享到:
评论

相关推荐

    一个直线型语言的解释器(二):解释器后端——解释器模式的应用

    在编程领域,解释器模式是一种设计模式,它允许我们构建一个可以解析特定语言或表达式的程序。直线型语言通常指的是那些语法简单、结构单一的语言,比如配置文件或简单的脚本语言。 解释器模式的核心在于定义一个...

    设计模式可复用面向对象软件的基础.zip

    5.3 INTERPRETER(解释器)—类行为型 模式 162 5.4 ITERATOR(迭代器)—对象行为型 模式 171 5.5 MEDIATOR(中介者)—对象行为型 模式 181 5.6 MEMENTO(备忘录)—对象行为型 模式 188 5.7 OBSERVER(观察者)—...

    Python设计模式之解释器模式原理与用法实例分析

    本文实例讲述了Python设计模式之解释器模式原理与用法。...设计模式——解释器模式 解释器模式(Interpreter Pattern):给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的

    《java设计模式》课后习题模拟试题解答——刘伟.zip

    包括策略(Strategy)、模板方法(Template Method)、观察者(Observer)、迭代器(Iterator)、访问者(Visitor)、责任链(Chain of ...Command)、备忘录(Memento)、状态(State)、解释器(Interpreter)等...

    23种 设计模式---面向对象的基本原则

    - 解释器模式(Interpreter):给定一种语言,定义它的文法表示,并提供一个解释器来处理该语言中的句子。 - 迭代器模式(Iterator):提供一种方法顺序访问聚合对象的元素,而又不暴露其底层表示。 - 中介者模式...

    设计模式代码——c#

    17. 解释器模式(Interpreter Pattern) 18. 中介者模式(Mediator Pattern) 19. 职责链模式(Chain of Responsibility Pattern) 20. 备忘录模式(Memento Pattern) 21. 策略模式(Strategy Pattern) 22. 访问者...

    设计模式精解——GoF23中设计模式解析

    11. **Interpreter模式**:给出一个语言的文法,并定义一个解释器来解释由该语言编写的程序。这里的“语言”是指使用规定格式和语义规则组成的一系列规则。这种模式适用于需要定义语言的语法或符号的解析程序时。 #...

    设计模式精解-GoF 23种设计模式解析附C++.pdf

    - **Interpreter模式**:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 #### 4. 总结 设计模式的学习不仅是为了记住每种模式的应用场景,更重要的是理解其...

    design-pattern-java.pdf

    请求发送者与接收者解耦——命令模式(六) 解释器模式-Interpreter Pattern 自定义语言的实现——解释器模式(一) 自定义语言的实现——解释器模式(二) 自定义语言的实现——解释器模式(三) 自定义语言的实现...

    X-gen PPT下载——《研磨设计模式》 实战

    3. **行为型模式**:包括责任链模式(Chain of Responsibility)、命令模式(Command)、解释器模式(Interpreter)、迭代器模式(Iterator)、中介者模式(Mediator)、备忘录模式(Memento)、观察者模式...

    设计模式PPT---25种设计模式详解

    3. 解释器模式(Interpreter):给定一种语言,定义它的文法表示,并提供一个解释器来处理该语言中的句子。 4. 迭代器模式(Iterator):提供一种方法顺序访问聚合对象的元素,而又不暴露其底层表示。 5. 中介者模式...

    设计模式C++版

    11. Interpreter模式,解释器模式,给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 文档在最后提出了设计模式在开发中的体验,讨论了设计模式的思考和应用。...

    设计模式精解-GoF 23种设计模式解析附C++实现源码.pdf

    - **3.11 Interpreter模式**:解释器模式给出一个语言的文法,并定义一个解释器来解释由该语言编写的程序。 通过深入学习这23种设计模式及其在C++中的实现,不仅可以提升软件开发的质量,还可以提高个人的技术水平...

    设计模式 让你轻松理解设计模式,提高开发效率

    解释器模式是一种行为型设计模式,它为特定语言的句子定义一个表示,并提供一个解释器来解释该语言的句子。该模式适用于当可以将一个需要解析或者翻译的问题表示成为一个特定类型的语法时。文章中通过“MM解释规则”...

    设计模式精解-GoF 23种设计模式解析

    Interpreter模式给出一个语言的文法,并定义了一个解释器来解释该语言中的句子,这里的“语言”是指使用规定格式和语义规则组成的一系列规则。 #### 4. 结论 通过深入研究和实践GoF 23种设计模式,开发者不仅能...

    深入浅出设计模式(中文版电子版)

    5.3InterpreterPattern(解释器模式) 190 5.3.1定义 190 5.3.2现实示例——音乐符号 192 5.3.3C#实例——中国金钱大写转换 192 5.3.4Java实例——自定义程序解释器 197 5.3.5优势和缺陷 204 5.3.6应用情景 ...

    设计模式C++版(pdf版)

    Interpreter模式给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 - **适用场景**:重复发生的解析任务;需要执行一个定义好的规则集;一个简单的语法需要...

Global site tag (gtag.js) - Google Analytics