zoukankan      html  css  js  c++  java
  • 无废话设计模式(22)行为型模式--解释器模式

    0-前言

      解释器模式定义(Interpreter):

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

    1-实现

    1-1、简单UML图

     1-2、代码实现

    //1、信息包(Context)
     class Context
    {
        public String message; //信息
        public String getMessage()
        {
            return message;
        }
    
        public void setMessage(String message)
        {
            this.message = message;
        }
    }
    
    //2-解释器父类
    abstract class AbstractExpression
    {
        public abstract void Interpret(Context context);
    }
    
    //2-1、解释器A
    class ExpressionA extends AbstractExpression
    {
        @Override
        public void Interpret(Context context)
        {
            System.out.println("原始信息:"+context.getMessage());
            System.out.println("解释器A完成解释---------------");
        }
    }
    //2-2、解释器B
    class ExpressionB extends AbstractExpression
    {
        @Override
        public void Interpret(Context context)
        {
            System.out.println("原始信息:"+context.getMessage());
            System.out.println("解释器B完成解释--------------");
        }
    }

    客户端

            Context ct = new Context();
            ct.setMessage("欢迎来到广东");
    
            AbstractExpression ea = new ExpressionA();
            ea.Interpret(ct);
    
            AbstractExpression eb = new ExpressionB();
            eb.Interpret(ct);

    运行结果

    2-应用场景简单总结

    1、如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。

      这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。

  • 相关阅读:
    SQL学习
    设计模式学习之简单工厂
    c#读写操作3
    SQL存储过程学习
    c# xml的读写
    SQL存储过程实例
    存储过程分页
    搞双显示器
    转:用药的七种心理误区
    lp提了一个非常让偶非常郁闷的要求……
  • 原文地址:https://www.cnblogs.com/yanghj/p/13455302.html
Copyright © 2011-2022 走看看