设计模式读书笔记:Interpreter(解释器)
2015-07-10 20:43
429 查看
意图:
给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。
结构图:来自 《23种设计模式 - 郗晓勇》
实现:https://github.com/panshiqu/patterns/tree/master/Interpreter
AbstractExpression
给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。
结构图:来自 《23种设计模式 - 郗晓勇》
实现:https://github.com/panshiqu/patterns/tree/master/Interpreter
AbstractExpression
namespace NS_INTERPRETER { class AbstractExpression { public: AbstractExpression() {} virtual ~AbstractExpression() {} virtual bool interpret(bool status) = 0; }; } /* namespace NS_INTERPRETER */ConcreteExpression
#include "AbstractExpression.h" namespace NS_INTERPRETER { class ConcreteExpression : public AbstractExpression { public: ConcreteExpression() {} virtual ~ConcreteExpression() {} virtual bool interpret(bool status) { // 可能存在多个这样的子类 // 传参可能也不止BOOL类型这样简单 // 这里只是想表达这个子类可以按照自己的方式解释这个参数 return !status; } }; } /* namespace NS_INTERPRETER */main
#include <iostream> #include "Interpreter/ConcreteExpression.h" using namespace NS_INTERPRETER; using namespace std; int main(void) { ConcreteExpression ce; std::cout << ce.interpret(false) << std::endl; }附加:
相关文章推荐
- Java学习笔记
- 浮点数的范围和精度
- javaweb 待填坑
- 结构体指针
- 系统设计题分析
- java基础-输入流-读取文本文件中数据至字符串数组
- 严重: A child container failed during start
- Python编码问题
- Java集合 之 Queue集合
- 正则表达式
- [LeetCode] Valid Palindrome
- JAVA多线程和并发执行
- 蚂蚁【A001】
- 奔跑中的2015——运维在路上
- vmware虚拟机下ubuntu设置1080p的有效方法
- 树的实现遍历及应用
- POSIX定时器:timer_settime()的使用
- win7中如何解决“该项不适用于在指定状态下使用”
- Web服务器开发
- java.net.UnknownHostException 异常处理