解释器模式c语言_解释器设计模式_解释器模式java

电脑杂谈  发布时间:2017-02-24 14:35:36  来源:网络整理

解释器模式java_解释器模式c语言_解释器设计模式

大家好,我是云图。今天我们来介绍下 Interpreter 解释器模式。Interpreter 解释器模式我们能用到的地方有很多,比如我们经常用的金额 用数字转中文字,

10000转成中文就是一万。 顾名思义,这个设计模式就是一个解释器,通过你输入的一个类型转成另外一个类型出来,在我们的sql查询里面更加有大量的运用。

我们先来看懂下基础代码,然后最后实现一个 我们游戏中的中英文切换功能。

[mw_shl_code=csharp,true]

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; }

}

}

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("非终端解释器");

}

}[/mw_shl_code]

首先我们定义一个Context的内容类,装有input 和output两个内容。然后是一个虚拟翻译类AbstractExpression。 里面有一个虚拟方法,可以传入一个Context。

最后是两个实体翻译类TerminalExpression类和NonterminalExpression类,都是实际操作的翻译类,这时各自都输出一句话示意。再来看实现

[mw_shl_code=csharp,true] Context context = new Context();

List<AbstractExpression> lists = new List<AbstractExpression>();

lists.Add(new TerminalExpression());

lists.Add(new NonterminalExpression());

lists.Add(new TerminalExpression());

lists.Add(new TerminalExpression());

foreach (AbstractExpression exp in lists)

{

exp.Interpret(context);

}[/mw_shl_code]

新new一个contex内容类, 一个虚拟翻译AbstractExpression表单, 然后添加实体翻译类,最后循环调用Interpret输出。解释器设计模式

基本的逻辑框架就是这样,是不是非常简单呢,好 现在我们再来升华下内容,做一个我们玩游戏中经常会有一个 中英文切换功能。


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-34239-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...