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

开发者社区> 开发与运维> 正文
登录阅读全文

设计模式——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。

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

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

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章
最新文章
相关文章