解释器模式
设计模式的意义在于:面向业务内容、业务数据结构和系统架构,高内聚低耦合、优雅的将平面逻辑立体化。
1 package designPattern; 2 import java.util.ArrayList; 3 import java.util.List; 4 /** 5 * 解释器模式 6 * @author Administrator 7 */ 8 public class B15_InterpreterTest { 9 /** 10 * 给定一个语言,定义它的文法的一种表示,并定义一个解释器, 11 * 这个解释器使用该表示来解释语言中的句子。 12 */ 13 @SuppressWarnings("unchecked") 14 public static void main(String[] args) { 15 Context ctx = new Context(); 16 ctx.add(new SimpleExpression()); 17 ctx.add(new AdvanceExpression()); 18 ctx.add(new SimpleExpression()); 19 List<Expression> eList=ctx.getList(); 20 for (Expression eps : eList) { 21 eps.interpret(ctx); 22 } 23 } 24 } 25 abstract class Expression { 26 27 abstract void interpret(Context ctx); 28 } 29 //expression 声明一个抽象的解释操作,这个接口为抽象语法树中所有的节点所共享。 30 class AdvanceExpression extends Expression { 31 32 void interpret(Context ctx) { 33 System.out.println("这是高级解析器!"); 34 } 35 } 36 class SimpleExpression extends Expression { 37 38 void interpret(Context ctx) { 39 System.out.println("这是普通解析器!"); 40 } 41 } 42 //context 包含解释器之外的一些全局信息。 43 class Context { 44 45 private String content; 46 47 @SuppressWarnings("rawtypes") 48 private List list = new ArrayList(); 49 50 public void setContent(String content) { 51 this.content = content; 52 } 53 54 public String getContent() { 55 return this.content; 56 } 57 58 @SuppressWarnings("unchecked") 59 public void add(Expression eps) { 60 list.add(eps); 61 } 62 63 @SuppressWarnings("rawtypes") 64 public List getList() { 65 return list; 66 } 67 }
环境:JDK1.6,MAVEN,tomcat,eclipse
源码地址:https://files.cnblogs.com/files/xiluhua/designPattern.rar
欢迎亲们评论指教。