设计模式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) ;
        }
    }
}
原文地址:https://www.cnblogs.com/liaokailin/p/3803509.html