解释器模式 | Interpreter Pattern
来源:互联网 发布:js模拟鼠标移动 编辑:程序博客网 时间:2024/06/05 11:36
解释器模式提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。
创建一个表达式接口:
public interface Expression { public boolean interpret(String context);}
创建实现上述接口的实体类:
public class TerminalExpression implements Expression { private String data; public TerminalExpression(String data){ this.data = data; } @Override public boolean interpret(String context) { if(context.contains(data)){ return true; } return false; }}
public class OrExpression implements Expression { private Expression expr1 = null; private Expression expr2 = null; public OrExpression(Expression expr1, Expression expr2) { this.expr1 = expr1; this.expr2 = expr2; } @Override public boolean interpret(String context) { return expr1.interpret(context) || expr2.interpret(context); }}
public class AndExpression implements Expression { private Expression expr1 = null; private Expression expr2 = null; public AndExpression(Expression expr1, Expression expr2) { this.expr1 = expr1; this.expr2 = expr2; } @Override public boolean interpret(String context) { return expr1.interpret(context) && expr2.interpret(context); }}
使用 Expression 类来创建规则,并解析它们。
public class InterpreterPatternDemo { //规则:Julie 是一个已婚的女性 public static Expression getMarriedWomanExpression(){ Expression julie = new TerminalExpression("Julie"); Expression married = new TerminalExpression("Married"); return new AndExpression(julie, married); } public static void main(String[] args) { Expression isMarriedWoman = getMarriedWomanExpression(); System.out.println("John is male? " + isMale.interpret("John")); System.out.println("Julie is a married women? " + isMarriedWoman.interpret("Married Julie")); }}
输出:
Julie is a married women? true
阅读全文
0 0
- 解释器模式(Interpreter Pattern)
- 解释器模式(Interpreter Pattern)
- 解释器模式 Interpreter Pattern
- 解释器模式(Interpreter Pattern)
- 解释器模式(Interpreter Pattern)
- 解释器模式 Interpreter Pattern
- 解释器模式--Interpreter Pattern
- 解释器模式 | Interpreter Pattern
- 设计模式 - Interpreter Pattern(解释器模式)
- 设计模式 - Interpreter Pattern(解释器模式)
- 设计模式【解释器模式Interpreter Pattern】
- 解释器模式(Interpreter Pattern)
- 原始的解释器模式(Interpreter Pattern)
- 解释器模式(Interpreter Pattern)
- Java Interpreter Pattern(解释器模式)
- 乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)
- 设计模式读书笔记之解释器模式(Interpreter pattern)
- 设计模式之解释器模式(Interpreter Pattern)
- Java注解的简单说明
- 斐波纳契数列
- Linux-4
- C语言贪吃蛇
- sql日期查询 中文格式转换
- 解释器模式 | Interpreter Pattern
- 排序:堆排序
- Quartz 2.2 动态添加、修改和删除定时任务
- java爬虫实战简单用Jsoup框架进行网页爬虫(如抓取网页图片)
- qq音乐常用接口整理——亲测可用
- 排序:归并
- 欢迎使用CSDN-markdown编辑器
- IDEA十大快捷键
- Python 常见文件格式 .py .pyc .pyw .pyo .pyd 之间的主要区别