Interpreter模式
给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子
AbstractExpression.java
package com.gary.designpattern.interpreter;/** * 解释操作接口 * @author gary * */public interface AbstractExpression {public void interpret(int data);}?
LowerCaseExpression.java
package com.gary.designpattern.interpreter;/** * 将数字解释成小写字母 * @author gary * */public class LowerCaseExpression implements AbstractExpression {@Overridepublic void interpret(int data) {System.out.println(Util.int2String(data, 49));}}?
UpperCaseExpression.java
package com.gary.designpattern.interpreter;/** * 将数字解释成大写字母 * @author gary * */public class UpperCaseExpression implements AbstractExpression {@Overridepublic void interpret(int data) {System.out.println(Util.int2String(data, 17));}}?
Util.java
package com.gary.designpattern.interpreter;public class Util {public static String int2String(int data, int add){StringBuffer sb = new StringBuffer();byte[] bytes = String.valueOf(data).getBytes();for (byte b : bytes) {sb.append((char)(b + add));}return sb.toString();}}?
Test.java
package com.gary.designpattern.interpreter;/** * 测试 * @author gary * */public class Test {public static void main(String[] args) {int data = 543210;AbstractExpression upper = new UpperCaseExpression();AbstractExpression lower = new LowerCaseExpression();upper.interpret(data);lower.interpret(data);}}?