zoukankan      html  css  js  c++  java
  • 解释器模式(Interpreter)

    http://www.cnblogs.com/maowang1991/archive/2013/04/15/3023236.html
    解释器模式是我们暂时的最后一讲,一般主要应用在OOP开发中的编译器的开发中,所以适用面比较窄。

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

    1. public interface Expression {  
    2.     public int interpret(Context context);  
    3. }  
    1. public class Plus implements Expression {  
    2.   
    3.     @Override  
    4.     public int interpret(Context context) {  
    5.         return context.getNum1()+context.getNum2();  
    6.     }  
    7. }  
    1. public class Minus implements Expression {  
    2.   
    3.     @Override  
    4.     public int interpret(Context context) {  
    5.         return context.getNum1()-context.getNum2();  
    6.     }  
    7. }  
    1. public class Context {  
    2.       
    3.     private int num1;  
    4.     private int num2;  
    5.       
    6.     public Context(int num1, int num2) {  
    7.         this.num1 = num1;  
    8.         this.num2 = num2;  
    9.     }  
    10.       
    11.     public int getNum1() {  
    12.         return num1;  
    13.     }  
    14.     public void setNum1(int num1) {  
    15.         this.num1 = num1;  
    16.     }  
    17.     public int getNum2() {  
    18.         return num2;  
    19.     }  
    20.     public void setNum2(int num2) {  
    21.         this.num2 = num2;  
    22.     }  
    23.       
    24.       
    25. }  
    1. public class Test {  
    2.   
    3.     public static void main(String[] args) {  
    4.   
    5.         // 计算9+2-8的值  
    6.         int result = new Minus().interpret((new Context(new Plus()  
    7.                 .interpret(new Context(9, 2)), 8)));  
    8.         System.out.println(result);  
    9.     }  
    10. }  

    最后输出正确的结果:3。

  • 相关阅读:
    long类型和int类型的区别!!!!!
    Java-冒号的作用
    Java Scanner类
    jre安装过程
    76. 最小覆盖子串
    75. 颜色分类
    73. 矩阵置零
    72. 编辑距离
    71. 简化路径
    61. 旋转链表
  • 原文地址:https://www.cnblogs.com/wjw334/p/4270220.html
Copyright © 2011-2022 走看看