设计模式读书笔记:Interpreter(解释器)

原创 2015年07月10日 20:43:29

意图:

给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。

结构图:来自 《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;
}
附加:
版权声明:本文为博主原创文章,未经博主允许不得转载。

设计模式(行为型)之解释器模式(Interpreter Pattern)

访问者模式是一种较为复杂的行为型设计模式,它包含访问者和被访问元素两个主要组成部分,这些被访问的元素通常具有不同的类型,且不同的访问者可以对它们进行不同的访问操作。访问者模式使得用户可以在不修改现有系...
  • yanbober
  • yanbober
  • 2015年05月06日 17:11
  • 3157

设计模式(c++)笔记之二十三(Interpreter模式)

一、描述:       概念:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 最简单的例子是表达式运算。       I...
  • my183100521
  • my183100521
  • 2013年10月25日 14:34
  • 2069

JAVA设计模式(22):行为型-解释器模式(Interpreter)

虽然目前计算机编程语言有好几百种,但有时候我们还是希望能用一些简单的语言来实现一些特定的操作,我们只要向计算机输入一个句子或文件,它就能够按照预先定义的文法规则来对句子或文件进行解释,从而实现相应的功...
  • taozi8023
  • taozi8023
  • 2016年05月19日 22:09
  • 4522

设计模式读书笔记-----解释器模式

为人处事是一门大学问,察言观色、听懂弦外之音都是非常重要的,老板跟你说“XX你最近表现平平啊,还得要多努力”,如果你不当回事,平常对待,可能下次就是“XX,恩,你人还是不错,平常工作也很努力,但是我想...
  • chenssy
  • chenssy
  • 2013年10月14日 23:21
  • 4666

《Android源码设计模式》读书笔记 (10) 第10章 解释器模式

前言解释器模式如同责任链模式一样,也是一种行为型模式,只是在平时使用较少. 不过想想android计算器四则运算:加减乘除和数字表达式的解释,其实恰恰就是这种设计模式的表现定义 定义:提供一种解释语...
  • qq_28690547
  • qq_28690547
  • 2016年02月21日 13:16
  • 218

设计模式读书笔记-----解释器模式

为人处事是一门大学问,察言观色、听懂弦外之音都是非常重要的,老板跟你说“XX你最近表现平平啊,还得要多努力”,如果你不当回事,平常对待,可能下次就是“XX,恩,你人还是不错,平常工作也很努力,但是我想...
  • lijunpeng71
  • lijunpeng71
  • 2016年05月09日 15:15
  • 129

设计模式读书笔记-----解释器模式

为人处事是一门大学问,察言观色、听懂弦外之音都是非常重要的,老板跟你说“XX你最近表现平平啊,还得要多努力”,如果你不当回事,平常对待,可能下次就是“XX,恩,你人还是不错,平常工作也很努力,但是我想...
  • IT1039871366
  • IT1039871366
  • 2016年01月25日 09:29
  • 247

《Android源码设计模式解析与实战》读书笔记(十)——解释器模式

第十章 化繁为简的翻译机——解释器模式 解释器模式是一种用得比较少的行为型设计模式,它提供了一种解释语言或者说是表达式的方法,该模式定义了一个表达式接口,然后通过该接口解释一个特定的上下文。解释器模式...
  • zgcqflqinhao
  • zgcqflqinhao
  • 2017年05月15日 16:59
  • 220

设计模式学习笔记——解释器(Interpreter)模式

设计模式学习笔记——解释器(Interpreter)模式@(设计模式)[设计模式, 解释器模式, Interpreter]设计模式学习笔记解释器Interpreter模式 基本介绍 解释器案例 类图 ...
  • q547550831
  • q547550831
  • 2017年04月13日 11:07
  • 296

[设计模式笔记]三. 行为型模式--17. Interpreter模式(解释器模式)(二)

场景: 我定义一个加减法则 // 表达式 expression ::= literal | PlusSign | MinusSign | '(' expression ')' //...
  • cay22
  • cay22
  • 2013年10月14日 17:42
  • 1153
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设计模式读书笔记:Interpreter(解释器)
举报原因:
原因补充:

(最多只允许输入30个字)