设计模式——23解释器模式(Interpreter)-阿里云开发者社区

开发者社区> inzaghi1984> 正文

设计模式——23解释器模式(Interpreter)

简介: 解释器模式(Interpreter)
+关注继续查看

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

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

[java] view plaincopy

  1. public interface Expression {
  2. public int interpret(Context context);
  3. }
    [java] view plaincopy
  4. public class Plus implements Expression {
  5. @Override
  6. public int interpret(Context context) {
  7. return context.getNum1()+context.getNum2();
  8. }
  9. }
    [java] view plaincopy
  10. public class Minus implements Expression {
  11. @Override
  12. public int interpret(Context context) {
  13. return context.getNum1()-context.getNum2();
  14. }
  15. }
    [java] view plaincopy
  16. public class Context {
  17. private int num1;
  18. private int num2;
  19. public Context(int num1, int num2) {
  20. this.num1 = num1;
  21. this.num2 = num2;
  22. }
  23. public int getNum1() {
  24. return num1;
  25. }
  26. public void setNum1(int num1) {
  27. this.num1 = num1;
  28. }
  29. public int getNum2() {
  30. return num2;
  31. }
  32. public void setNum2(int num2) {
  33. this.num2 = num2;
  34. }
  35. }
    [java] view plaincopy
  36. public class Test {
  37. public static void main(String[] args) {
  38. // 计算9+2-8的值
  39. int result = new Minus().interpret((new Context(new Plus()
  40. .interpret(new Context(9, 2)), 8)));
  41. System.out.println(result);
  42. }
  43. }
    最后输出正确的结果:3。

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
带你读《计算机组成与体系结构:性能设计(英文版·原书第10版)》之二:Performance Issues
本书以Intel x86体系结构和ARM两个处理器系列为例,将当代计算机系统性能设计问题与计算机组成的基本概念和原理紧密联系起来,介绍了当代计算机体系结构的主流技术和最新技术。本书作者曾13次获a得美国教材和学术专著作者协会颁发的年度最佳计算机科学教材奖。目前,他是一名独立顾问,为众多计算机和网络制造商、软件开发公司以及政府前沿研究机构提供服务。
564 0
电商ERP系统——商品SKU与库存设计
总体思路 1.商品关联商品类别,商品类别关联多个商品属性,其中指定某几个商品属性为SKU关键字段。例如,服装类别的颜色、尺码属性。 2.多个SKU商品属性值组合生成唯一的商品SKUID。
4135 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4439 0
设计模式(十六) 解释器模式
解释器模式是一种行为型模式,它的主要作用是用一种方式来实现对表达式或文法的处理。我们可以使用解释器模式处理语言的解析,在设计计算机语言的时候解释器模式很有用处。
627 0
阿里云服务器远程登录用户名和密码的查询方法
阿里云服务器远程连接登录用户名和密码在哪查看?阿里云服务器默认密码是什么?云服务器系统不同默认用户名不同
420 0
RPA干货丨详解RPA的设计与构建
德勤在一份有关RPA的研究报告中曾提到,一家收入在200亿美元且拥有5万名员工的财富1000强公司,如果其20%的工作能够用RPA实现流程自动化,每年将会为公司带来超过3000万美元的利润。实施RPA已成为一项新潮流。
2802 0
+关注
inzaghi1984
金融IT技术人员
220
文章
62
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载