行为型模式-解释器模式
2011-03-22 22:36
148 查看
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace 解释器模式
{
/*
* 解释器模式意图:给定一个语言, 定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。
*
* 解释器模式使用场景:1、当一个语言需要解释执行,并且系统将该语言中的句子表示为一个抽象语法树时
* 2、语法的构建复杂,且语法相关的类层次庞大且难以管理,使用解释器模式构建语法树
*
*/
///<summary>
/// 表达解释抽象类
///</summary>
publicabstractclass AbstractExpression
{
publicabstractvoid Interpret(Context context);
}
///<summary>
/// 终结表达类
///</summary>
publicclass TerminalExpression : AbstractExpression
{
publicoverridevoid Interpret(Context context)
{
//调用终结符表达式
}
}
///<summary>
/// 上下文类
///</summary>
publicclass Context
{
}
///<summary>
/// 非终结表达类
///</summary>
publicclass NonterminalExpression : AbstractExpression
{
publicoverridevoid Interpret(Context context)
{
//调用非终结表达
}
}
publicclass AppClient
{
publicstaticvoid Main(string[] args)
{
Context context =new Context();
//填充语法树
ArrayList list =new ArrayList();
list.Add(new NonterminalExpression());
list.Add(new TerminalExpression());
list.Add(new NonterminalExpression());
foreach (AbstractExpression expression in list)
{
expression.Interpret(context);//将按语法树的顺序调用具体的表达
}
}
}
}
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace 解释器模式
{
/*
* 解释器模式意图:给定一个语言, 定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。
*
* 解释器模式使用场景:1、当一个语言需要解释执行,并且系统将该语言中的句子表示为一个抽象语法树时
* 2、语法的构建复杂,且语法相关的类层次庞大且难以管理,使用解释器模式构建语法树
*
*/
///<summary>
/// 表达解释抽象类
///</summary>
publicabstractclass AbstractExpression
{
publicabstractvoid Interpret(Context context);
}
///<summary>
/// 终结表达类
///</summary>
publicclass TerminalExpression : AbstractExpression
{
publicoverridevoid Interpret(Context context)
{
//调用终结符表达式
}
}
///<summary>
/// 上下文类
///</summary>
publicclass Context
{
}
///<summary>
/// 非终结表达类
///</summary>
publicclass NonterminalExpression : AbstractExpression
{
publicoverridevoid Interpret(Context context)
{
//调用非终结表达
}
}
publicclass AppClient
{
publicstaticvoid Main(string[] args)
{
Context context =new Context();
//填充语法树
ArrayList list =new ArrayList();
list.Add(new NonterminalExpression());
list.Add(new TerminalExpression());
list.Add(new NonterminalExpression());
foreach (AbstractExpression expression in list)
{
expression.Interpret(context);//将按语法树的顺序调用具体的表达
}
}
}
}
相关文章推荐
- 十六、 Interpreter 解释器(行为型模式)
- 二十三种设计模式之行为型模式之解释器模式
- 设计模式(二十)解释器模式(Interpreter)-行为型
- 解释器模式(行为型)
- 设计模式-行为型模式,解释器模式(12)
- 大话设计模式之解释器模式——行为型
- 设计模式-行为型- 解释器模式(Interpreter)
- 解释器模式-类行为型
- 十三、行为型模式之解释器、迭代器-----《大话设计模式》
- 十八.行为型设计模式——Interpreter Pattern(解释器模式)
- 行为型:设计模式之解释器模式(二十二)
- 11 行为型模式之 - 解释器模式
- 设计模式(二十三)—解释器模式(行为型)
- GoF23种设计模式之行为型模式之解释器模式
- C#面向对象模式设计第十六讲:Interpreter 解释器模式(行为型模式)
- 【设计模式】—-(19)解释器模式(行为型)
- 行为型模式-----解释器(Interpreter)
- JAVA设计模式(22):行为型-解释器模式(Interpreter)
- 行为型模式之解释器模式(Interpreter)
- 面向对象设计模式之Interpreter解释器模式(行为型)