【Java中23种面试常考的设计模式之解释器模式(Interpreter)---行为型模式】

【Java中23种面试常考的设计模式之解释器模式(Interpreter)—行为型模式】

知识回顾:

之前我们讲过的设计模式在这里呦:
【面试最常见的设计模式之单例模式】
【面试最常见的设计模式之工厂模式】
【Java中23种面试常考的设计模式之备忘录模式(Memento)—行为型模式】
【Java中23种面试常考的设计模式之观察者模式(Observer)—行为型模式】
【Java中23种面试常考的设计模式之模板模式(Template)—行为型模式】
【Java中23种面试常考的设计模式之状态模式(State)—行为型模式】
【Java中23种面试常考的设计模式之策略模式(Strategy)—行为型模式】
【Java中23种面试常考的设计模式之迭代器模式(Iterator)—行为型模式】
【Java中23种面试常考的设计模式之访问者模式(Visitor)—行为型模式】
【Java中23种面试常考的设计模式之中介者模式(Mediator)—行为型模式】
接下来我们要进行学习的是:【Java中23种面试常考的设计模式之解释器模式(Interpreter)—行为型模式。

解释器模式

解释器模式:提供了评估语言的语法或表达式的方式。这种模式被用在 SQL 解析、符号处理引擎等。

解决的问题

  1. 对于一些固定文法构建一个解释句子的解释器。
  2. 如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。

生产开发中常用的使用场景

  1. EL表达式式的处理
  2. 正则表达式解释器
  3. SQL语法的解释器
  4. 当我们需要开发一种新的语言时,可以考虑使用解释器模式。
  5. 相比较于其他的设计模式,解释器设计模式不是很常用。
  6. 等等。。。等等

解释器模式优点与缺点

优点
  1. 可扩展性比较好,灵活。
  2. 实现简单。
    在这里插入图片描述
缺点
  1. 应用的场景范围小。
  2. 对于复杂的文法比较难维护。
  3. 解释器模式会采用递归调用方法,可能会降低效率,并且会提高维护和调试的成本。
    在这里插入图片描述

核心角色

Context:环境角色(上下文),含有每个解释器所需的一些数据或全局的一些信息。
AbstractExpression:抽象表达式类,声明了抽象的解释操作,所有解释器类都继承或实现该类。
TerminalExpression:终结符表达式类,是AbstractExpression的子类,实现了文法中有关终结符相关的解释操作。NonterminalExpression:非终结符表达式,AbstractExpression的子类,该类的功能与终结表达式类相反,文法中所有非终结符由该类进行解释。
Client:客户端测试类。

UML类图

在这里插入图片描述

实现代码:因为这个设计模式应用场景比较少,网络上实现的方式也有很多,这个地方就不实现了,感兴趣的同学可以去看一下【设计模式之禅】【大话设计模式】。

好了,到这里【Java中23种面试常考的设计模式之解释器模式(Interpreter)—行为型模式】就结束了,23种设计模式持续更新汇总中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

硕风和炜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值