解释器模式(Interpreter):它定义了对象与对象之间进行某种操作之后会得到什么值。一般主要应用在OOP开发中的编译器的开发中,所以适用面比较窄。
##一、uml建模:
![](https://box.kancloud.cn/2016-02-19_56c7196f2a5b2.jpg)
##二、代码实现
~~~
/**
* 解释器模式(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设计模式博客全目录