设计模式的意义在于:面向业务内容、业务数据结构和系统架构,高内聚低耦合、优雅的将平面逻辑立体化。
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 ListeList=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
源码地址:http://files.cnblogs.com/files/xiluhua/designPattern.rar
欢迎亲们评论指教。