博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式(行为型模式)——解释器模式(Interpreter)
阅读量:7228 次
发布时间:2019-06-29

本文共 1387 字,大约阅读时间需要 4 分钟。

hot3.png

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

c87e402e-a355-3761-9ce3-7978956ba475.jpg

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。

 

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

资源:http://download.csdn.net/detail/zhangerqing/4835830

 

原文链接:

转载于:https://my.oschina.net/u/1431757/blog/715891

你可能感兴趣的文章
Python_OOP
查看>>
个人博客开发系列:评论功能之GitHub账号OAuth授权
查看>>
mongodb--安装和初步使用教程
查看>>
ES6简单总结(搭配简单的讲解和小案例)
查看>>
text-decoration与color属性
查看>>
如何使用Mybatis第三方插件--PageHelper实现分页操作
查看>>
PyCharm搭建GO开发环境(GO语言学习第1课)
查看>>
Android交互
查看>>
提醒我喝水chrome插件开发指南
查看>>
列表数据转树形数据
查看>>
Java新版本的开发已正式进入轨道,版本号18.3
查看>>
从零开始的webpack生活-0x009:FilesLoader装载文件
查看>>
在electron中实现跨域请求,无需更改服务器端设置
查看>>
gitlab-ci配置详解(一)
查看>>
听说你叫Java(二)–Servlet请求
查看>>
案例分享〡三拾众筹持续交付开发流程支撑创新业务
查看>>
FreeWheel业务系统微服务化过程经验分享
查看>>
移动互联网下半场,iOS开发者如何“高薪”成长?
查看>>
Atlassian是怎样进行持续交付的?且听 Steve Smith一一道来
查看>>
Web Storage相关
查看>>