首页 > 代码库 > 解释器模式

解释器模式

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

/*



*
* 如同数据转换 文本解释等
可用于协议等的接收数据处理解释
*/

namespace App_MYCS.HDL_SJMS.JSCMS
{
class my_JSCMS
{
public void Dy()
{
context ct = new context();
IList<abstractExpression> list = new List<abstractExpression>();

list.Add(new TerminalExpression());
list.Add(new NonterminalExpression());
list.Add(new TerminalExpression());
list.Add(new TerminalExpression());


foreach (abstractExpression item in list)
{
item.Interpret(ct);
}
}

}


abstract class abstractExpression
{
public abstract void Interpret(context context);
}

class TerminalExpression : abstractExpression
{
public override void Interpret(context context)
{
Console.WriteLine("终端解释器");
}
}
class NonterminalExpression : abstractExpression
{
public override void Interpret(context context)
{
Console.WriteLine("非终端解释器");
}
}

class context
{
private string input;

public string Input
{
get { return input; }
set { input = value; }
}

private string output;

public string Output
{
get { return output; }
set { output = value; }
}
}


//---------------------------------

 

//要求被解释的对象
class class_nr
{
private string text;

public string Text
{
get { return text; }
set { text = value; }
}
}

//抽像解释器
abstract class Expression
{
public void Interpret(class_nr text)
{

string str="";
//对内容进行分类处理
//按条件获取出相应的字符串数据

 

Excute(str);//调用详细的处理
}

public abstract void Excute(string str);
}

//不同子类的处理类
class e_a : Expression
{
public override void Excute(string str)
{
//不同的处理
}
}

//不同子类的处理类
class e_b : Expression
{
public override void Excute(string str)
{
//不同的处理
}
}
//.....


class dy
{
//通过结合进行对字符串的处理

 

}

}

解释器模式