首页 > 其他 > 详细

解释器模式

时间:2020-07-01 19:44:47      阅读:41      评论:0      收藏:0      [点我收藏+]

名称:

    解释器模式(Interpreter Pattern)

 

问题:

    The Interpreter pattern interprets a language to define a representation for its grammar along with an interpreter that uses the representation to interpret sentences in the language.

 

解决方案:

    

1、 模式的参与者

   1、AbstractExpression

    -声明一个抽象的解释操作,这个接口为抽象语法树中所有的节点所共享。

    2、TerminalExpression

    -实现与文法中的终结符相关联的解释操作。

    -一个句子中的每个终结符需要改类的一个实例。

    3、NoterminalExpression

    -对文法中的每一条规则R::==R1R2...Rn都需要一个NoterminalExpression类。

   -为从R1到Rn的每个符号都维护一个AbstractExpression类型的实例变量。

    -为文法中的非终结符实现解释(Interpret)。解释一般递归的调用表示R1到Rn的那些对象的解释操作。

    4、Context 上下文

    -构建(或被给定)表示该文法定义的语言中一个的特定的句子的抽象语法树。该抽象语法树由NonterminalExpression和TerminalExpression的实例装配而成。

    -调用解释操作。

 

2.实现方式

interface AbstractExpression
{
    public Object interpret(String info);    
}
class TerminalExpression implements AbstractExpression
{
    public Object interpret(String info)
    {
        
    }
}
class NonterminalExpression implements AbstractExpression
{
    private AbstractExpression exp1;
    private AbstractExpression exp2;
    public Object interpret(String info)
    {
        
    }
}
class Context
{
    private AbstractExpression exp;
    public Context()
    {
        
    }
    public void operation(String info)
    {
        
    }
}

 

参考资料

《设计模式:可复用面向对象软件的基础》

    

   

解释器模式

原文:https://www.cnblogs.com/diameter/p/13220718.html

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