解释器模式
将问题的各个实例表述为一个句子,构造1个解释器,对该句子进行解析,就像脚本一样。
eg:
//演奏内容
class PlayContext
{
private string text; //演奏文本
public string PlayText//定义类,不定义也可以
{
get(){return text};
set(string value){text = value};
}
}
abstract class Expression //抽象解释器
{
public void Interpret(PlayContext context)
{
//从 context.PlayText获取 key和Value
Excute(playKey, playValue);//执行相关命令,多态
}
public abstract void Excute(string key, double value);//多态
}
class Note: Expression//音符
{
//重写 Excute(string key, double value);
}
class Scale: Expression //音阶
{
//重写 Excute(string key, double value);
}

浙公网安备 33010602011771号