定义:解释器模式(interpreter),给定一个语言,定义它的文法中的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。
UML图:
代码实现:
class Program
{
static void Main(string[] args)
{
Context context = new Context(“a”);
Interpret(context);
context = new Context(“0”);
Interpret(context);
Console.Read();
}
static void Interpret(Context context)
{
List list = new List
{
new ZeroInterpreter(),
new NoZerolInterpreter()
};
list.ForEach(i =>
{
i.Interpret(context);
});
}
}
namespace IntereptDesign
{
public abstract class AbsInterpreter
{
public abstract void Interpret(Context context);
}
public class ZeroInterpreter : AbsInterpreter
{
public override void Interpret(Context context)
{
if (string.Compare("0", context.Msg) == 0)
{
Console.WriteLine("0解析器");
}
}
}
public class NoZerolInterpreter : AbsInterpreter
{
public override void Interpret(Context context)
{
if (string.Compare("0", context.Msg) != 0)
{
Console.WriteLine("非0解析器");
}
}
}
}
public class Context
{
public Context(string msg)
{
Msg = msg;
}
public string Msg
{
get;set;
}
}
运行结果: