架构师内功心法22——解释器模式

    1、定义:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。属于行为型模式。

    2、特征:为了解释一种语言,而为语言创建的解释器。

    3、适用场景:

        a.一些重复出现的问题可以用一种简单的语言来进行表达;

        b.一个简单语法需要解释的场景。

    4、优点:

        a.扩展性强:在解释器模式中由于语法是由很多类表示的,当语法规则更改时,只需修改相应的非终结符表达式即可;若扩展语法时,只需添加相应非终结符类即可;

        b.增加了新的解释表达式地方式;

        c.易于实现文法:解释器模式对应地文法应当时比较简单且易于实现地,过于复杂地语法并不适合使用解释器模式。

    5、缺点:

        a.语法规则较复杂时,会引起类膨胀;

        b.执行效率比较低。

    6、源码中的体现:jdk中的Pattern、spring中的Expression。


代码


类图


IArithmeticInterpreter


NumInterpreter


Interpreter


AddInterpreter


DivInterpreter


MultiInterpreter


SubInterpreter


OperatorUtil


GPCalculator


Test

你可能感兴趣的:(架构师内功心法22——解释器模式)