解释器模式(Interpreter)
解释器模式是我们暂时的最后一讲,一般主要应用在OOP开发中的编译器的开发中,所以适用面比较窄。

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

[java] view plaincopy
public interface Expression {
public int interpret(Context context);
}
[java] view plaincopy
public class Plus implements Expression {

@Override
public int interpret(Context context) {
return context.getNum1()+context.getNum2();
}
}
[java] view plaincopy
public class Minus implements Expression {

@Override
public int interpret(Context context) {
return context.getNum1()-context.getNum2();
}
}
[java] view plaincopy
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;
}

}
[java] view plaincopy
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。

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

转载于:https://www.cnblogs.com/juniorjava/p/7874642.html

解释器模式(Interpreter)相关推荐

  1. java interpreter_解释器模式(Interpreter)Java

    定义: 解释器模式(interpreter):给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子. 结构图: AbstractExpression解释器模式 ...

  2. 【白话设计模式二十二】解释器模式(Interpreter)

    为什么80%的码农都做不了架构师?>>>    #0 系列目录# 白话设计模式 工厂模式 单例模式 [白话设计模式一]简单工厂模式(Simple Factory) [白话设计模式二] ...

  3. 设计模式之解释器模式(Interpreter)摘录

    23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...

  4. 解释器模式(interpreter)解析例子

    摘要:本文深入浅出的讲述了设计模式中的解释器模式,并给出了简单的示例,例子浅显易懂,并附带源代码. 解释器模式属于行为型模式,其意图是给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该 ...

  5. 设计模式的理解:解释器模式 Interpreter

    解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式.这种模式实现了一个表达式接口,该接口解释一个特定的上下文.这种模式被用在 SQL 解析.符号处 ...

  6. 35解释器模式(Interpreter Pattern)

    动机(Motivate):     在软件构建过程中,如果某一特定领域的问题比较复杂,类似的模式不断重复出现,如果使用普通的编程方式来实现将面临非常频繁的变化.     在这种情况下,将特定领域的问题 ...

  7. [设计模式-行为型]解释器模式(Interpreter)

    一句话 看起来是用来解释一种语言的文法.(类似不同的解释器子类解释不同的字符) 和编译器类似的解释器, 实际状况可能使用的比较少. 概括 解析 INTERPRETER-俺有一个<泡MM真经> ...

  8. 设计模式循序渐进(9)解释器模式 Interpreter

    通过解释器模式实现阿拉伯数字与罗马数字的相互转换. 具体的模式分析解说日后补发. Delphi代码: unit uInt2RomeInterpreter; { 单元说明:将整数转换为罗马数字      ...

  9. 设计模式之15 - 解释器模式Interpreter

    1. 解释器模式(Interpreter Pattern)的定义 (1)定义 给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子. ①文法:即语法规则.在解 ...

  10. 设计模式之略见一斑(解释器模式Interpreter)

    解释器模式是一种比较难理解的模式,但如果你对Command(命令模式)和Composite(组合模式)很了解的话,你会发现其实解释器模式就是这两种的组合.为何要使用解释器模式,如何用解释器模式呢,这就 ...

最新文章

  1. 小白重装系统教程_重装系统教程,小编教你怎么重装win10系统
  2. HDU - 2859 Phalanx(动态规划/哈希表)
  3. coherence安装_Oracle Coherence:分布式数据管理
  4. (原创)c#学习笔记06--函数02--变量的作用域01--其他结构中变量的作用域
  5. 数据库基础 MySQL
  6. 02WCF初识:ServiceEndpoint
  7. codejock toolkit pro 源码零售版
  8. html静态页面作业——绿色特产商城购物网(11页) HTML+CSS+JavaScript 网页设计作业,网页制作作业, 学生网页作业, 网页作业成品, 网页作业模板
  9. 最大连通分支Giant Component
  10. cv2显示图片显蓝色
  11. 抽水马桶工作原理演示
  12. 什么是nmap以及如何使用它
  13. Jetpack Compose——Text(文本)的使用
  14. java opencv 去噪,opencv教程-图像去噪与修复
  15. php工程师元初,历代社日诗词选(42首)
  16. 量子计算 18 量子算法3 (RSA Shor)
  17. 洛谷P1150 Peter的烟(逻辑建模)
  18. SS54/SS24/SS510及SMA/SMB/SMC不同封装区别
  19. yii2 框架使用gii工具创建模块
  20. 基于SpringBoot+Vue 实现的OA自动化办公系统

热门文章

  1. 【转】android自定义控件
  2. java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
  3. 漫谈算法(番外篇) 符号标记以及基本数学公式
  4. mysql源码添加一个命令,MySQL ALTER命令
  5. python遍历目录压缩文件夹然后在发送邮件_python目录操作之python遍历文件夹后将结果存储为xml...
  6. python typing typescript_Python的价值,对比Java/Typescript
  7. powershell查看mysql密码_使用Windows PowerShell从数据库导入用户
  8. apk可以解压再复制到手机吗_不行了,这个打通手机和电脑的神器,必须得安利给你们...
  9. python解码函数_python2和python3的编码encode解码decode函数
  10. C#保存图片到特定目录