行为型模式:11.解释器模式(Interpreter)
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。

浙公网安备 33010602011771号