新闻资讯

新闻资讯 行业动态

Spring框架中的设计模式——解释器

编辑:008     时间:2020-02-27

解释器设计模式

在现实世界中,我们人类需要解释手势。他们可以对文化有不同的含义。这是我们的解释,给他们一个意义。在编程中,我们还需要分析一件事情,并决定它是什么意思。我们可以用解释设计模式来做。

此模式基于表达式和评估器部分。第一个代表一个要分析的事情。这个分析是由评价者来做出的,它们知道构成表达的人物的意义。不必要的操作是在一个上下文中进行的。

Spring主要以Spring Expression Language(SpEL)为例。这里快速提个醒,SpEL是一种由Spring的org.springframework.expression.ExpressionParser实现分析和执行的语言。这些实现使用作为字符串给出的Spel表达式,并将它们转换为org.springframework.expression.Expression的实例。上下文组件由org.springframework.expression.EvaluationContext实现表示,例如:StandardEvaluationContext。

举个SpEL的一个例子:

  1. Writer writer = new Writer();

  2. writer.setName("Writer's name");

  3. StandardEvaluationContext modifierContext = new StandardEvaluationContext(subscriberContext);

  4. modifierContext.setVariable("name", "Overriden writer's name");

  5. parser.parseExpression("name = #name").getValue(modifierContext);

  6. System.out.println("writer's name is : " + writer.getName());

输出应打印“Overriden writer’s name”。如你所见,一个对象的属性是通过一个表达式name = #name进行修改的,这个表达式只有在ExpressionParser才能理解,因为提供了context(前面的样例中的modifierContext实例)。


原文链接:https://mp.weixin.qq.com/s/3AWW1OX5KwMDX4CM4c39kg

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

回复列表

相关推荐