设计模式之解释器模式(interprete)

定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解

解释器模式属于行为模式

Java 设计模式之解释器模式(interprete)示例

  • 定义接口
public interface Interpreter {
	public void doProcess(Context context);
}
  • 定义base64加密表达式
public class Base64Expression implements Interpreter{
	@Override
	public void doProcess(Context context) {
		//String rs = MD5.encode(context.getMsg());
		String rs = "模拟base64加密 ,假设结果为aaaaaaaaaaaaaaaaaaafguffghdfgbffdsrfgdtydfjddfb";
		context.outputResult(rs);
	}
}
  • 定义aes表达式
public class AesExpression implements Interpreter{
	@Override
	public void doProcess(Context context) {
		String rs = "模拟aes加密 ,假设结果为sadfjka;sdjfk;askdjfa;sldfjasl";
		context.outputResult(rs);
	}
}
  • 定义上下文环境
public class Context {
	private String msg;
	public String getMsg() {
		return msg;
	}
	public void setMsg(String msg) {
		this.msg = msg;
	}
	public void outputResult(String str)
	{
		LogHelper.log("结果 : " + str);
	}
}
  • 测试
public class App {
	public static void main(String[] args)
	{
		Context context = new Context();
		context.setMsg("美国开始传递情报。。。");

		// 使用aes 加密
		Interpreter aes = new AesExpression();
		aes.doProcess(context);

		// 使用base64
		Interpreter base64 = new Base64Expression();
		base64.doProcess(context);
	}
}

运行结果为

【www.pangugle.com】-  结果 : 模拟aes加密 ,假设结果为sadfjka;sdjfk;askdjfa;sldfjasl
【www.pangugle.com】-  结果 : 模拟base64加密 ,假设结果为aaaaaaaaaaaaaaaaaaafguffghdfgbffdsrfgdtydfjddfb