zoukankan      html  css  js  c++  java
  • 设计模式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) ;
            }
        }
    }
  • 相关阅读:
    Python—re模块
    Python—json模块
    Python—sys模块介绍
    Python—os模块介绍
    Python—randonm模块介绍
    Python—time模块介绍
    Python—包介绍
    Python—模块介绍
    Python—装饰器
    jvm、jre、jdk
  • 原文地址:https://www.cnblogs.com/liaokailin/p/3803509.html
Copyright © 2011-2022 走看看