首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

举动型模式-解释器模式(Interpreter)

2013-08-09 
行为型模式--解释器模式(Interpreter)Context类是一个上下文环境类,Plus和Minus分别是用来计算的实现,代码

行为型模式--解释器模式(Interpreter)

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

?

[java]?view plaincopy
  1. public?interface?Expression?{??
  2. ????public?int?interpret(Context?context);??
  3. }??
[java]?view plaincopy
  1. public?class?Plus?implements?Expression?{??
  2. ??
  3. ????@Override??
  4. ????public?int?interpret(Context?context)?{??
  5. ????????return?context.getNum1()+context.getNum2();??
  6. ????}??
  7. }??
[java]?view plaincopy
  1. public?class?Minus?implements?Expression?{??
  2. ??
  3. ????@Override??
  4. ????public?int?interpret(Context?context)?{??
  5. ????????return?context.getNum1()-context.getNum2();??
  6. ????}??
  7. }??
[java]?view plaincopy
  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. }??
[java]?view plaincopy
  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。

热点排行