Android设计模式系列:
- 单例模式
- Builder模式
- 原型模式
- 工厂方法模式
- 抽象工厂模式
- 策略模式
- 状态模式
- 责任链模式
- 解释器模式
- 命令模式
- 观察者模式
- 备忘录模式
- 迭代器模式
- 模板方法模式
- 访问者模式
- 中介者模式
- 代理模式
- 组合模式
- 适配器模式
- 装饰模式
- 享元模式
- 外观模式
- 桥接模式
概念
提供一种解释语言的文法或表达式的方式,每个解释器对应一条文法,通常有个统一的抽象解释器,分为终结解释器和非终结解释器两种实现,从而实现具体的解释操作。类似于在Java这种高级语言之上再次定义一种语言的编译器,然后在不改动这个编译器的条件下,也就是不改变Java代码就能够随意的书写更高级的代码,然后执行。在这种模式之下java程序都不用修改,只用修改上面的文本文件就可以了,非常的方便,适合于结构已经固定,但是可以随意修改功能的场合
主要角色
- 抽象表达式(Abstract Expression)角色:定义解释器的接口,约定解释器的解释操作,主要包含解释方法 interpret()。
- 终结符表达式(Terminal Expression)角色:是抽象表达式的子类,用来实现文法中与终结符相关的操作,文法中的每一个终结符都有一个具体终结表达式与之相对应。
- 非终结符表达式(NonterminalExpression)角色:也是抽象表达式的子类,用来实现文法中与非终结符相关的操作,文法中的每条规则都对应于一个非终结符表达式。
- 环境(Context)角色:通常包含各个解释器需要的数据或是公共的功能,一般用来传递被所有解释器共享的数据,后面的解释器可以从这里获取这些值。
- 客户端(Client):主要任务是将需要分析的句子或表达式转换成使用解释器对象描述的抽象语法树,然后调用解释器的解释方法,当然也可以通过环境角色间接访问解释器的解释方法。