首页 > 其他 > 详细

解释器模式

时间:2015-04-10 11:07:09      阅读:108      评论:0      收藏:0      [点我收藏+]

 

设计模式的意义在于:面向业务内容、业务数据结构和系统架构,高内聚低耦合、优雅的将平面逻辑立体化。

 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

源码地址:http://files.cnblogs.com/files/xiluhua/designPattern.rar

欢迎亲们评论指教。

解释器模式

原文:http://www.cnblogs.com/xiluhua/p/4413796.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!