首页 > 代码库 > Java设计模式菜鸟系列(二十)解释器模式建模与实现
Java设计模式菜鸟系列(二十)解释器模式建模与实现
转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/40019829
解释器模式(Interpreter):它定义了对象与对象之间进行某种操作之后会得到什么值。一般主要应用在OOP开发中的编译器的开发中,所以适用面比较窄。
一、uml建模:
二、代码实现
/** * 解释器模式(Interpreter):它定义了对象与对象之间进行某种操作之后会得到什么值。 * * 一般主要应用在OOP开发中的编译器的开发中,所以适用面比较窄。 * * 示例:先定义一个实体类,封装两个变量num1、num2 */ class Entity { private double num1; private double num2; public Entity(double num1, double num2) { this.num1 = num1; this.num2 = num2; } public double getNum1() { return num1; } public void setNum1(double num1) { this.num1 = num1; } public double getNum2() { return num2; } public void setNum2(double num2) { this.num2 = num2; } } /** * 运算接口 */ interface Operatable { public double interpreter(Entity entity); } /** * 加法运算 */ class AddOperation implements Operatable { @Override public double interpreter(Entity entity) { return entity.getNum1() + entity.getNum2(); } } /** * 减法运算 */ class MinusOperation implements Operatable { @Override public double interpreter(Entity entity) { return entity.getNum1() - entity.getNum2(); } } /** * 客户端测试类 * * @author Leo */ public class Test { public static void main(String[] args) { /** * 创建加法、减法运算 */ AddOperation addOperation = new AddOperation(); MinusOperation minusOperation = new MinusOperation(); /** * 一、分步运算 */ double addResult = addOperation.interpreter(new Entity(20, 30)); double minusResult = minusOperation.interpreter(new Entity(20, 30)); System.out.println("addResult = " + addResult); System.out.println("minusResult = " + minusResult); /** * 二、混合运算 */ double mixResult = new AddOperation().interpreter(new Entity( addOperation.interpreter(new Entity(20, 30)), minusOperation .interpreter(new Entity(40, 50)))); System.out.println("mixResult = " + mixResult); } }
三、总结
解释器模式用来做各种各样的解释器,如正则表达式的解释器等等。
Java设计模式菜鸟系列(二十)解释器模式建模与实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。