设计模式16-解释器模式

1. 概念

    给定一个语言,定义他的文法的一个表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子

2. 案例

    

package org.demo.interprerted.demo01;



import java.util.ArrayList;

import java.util.List;



/**

 * 

 */







class Context{

    private String content ;

    private List<Expression> list = new ArrayList<Expression>() ;

    public void setContent(String content){

        this.content = content ;

    }

    public String getContent(){

        return this.content ;

    }

    public void add(Expression eps){

        list.add(eps) ;

    }

    public List<Expression> getList() {

        return list;

    }

    

}



abstract class Expression{

    abstract void interpret(Context ctx) ;  //interpret 解析

}



class AdvanceExpression extends Expression{

    @Override

    void interpret(Context ctx) {

        System.out.println("这是高级解析器!");

    }

}



class SimpleExpression extends Expression { 

    void interpret(Context ctx) {

        System.out.println("这是普通解析器!"); 

        } 

    }



public class InterpretedDemo01 {

    public static void main(String[] args) {

        Context ctx = new Context() ;

        ctx.add(new SimpleExpression()) ;

        ctx.add(new AdvanceExpression()) ;

        ctx.add(new SimpleExpression()) ;

        

        for(Expression eps : ctx.getList()){

          eps.interpret(ctx) ;

        }

    }

}

 

你可能感兴趣的:(设计模式)