【設計模式】之解釋器模式

  • UML

  • 原型

	//待解釋文本
    class Context
    {
        private string input;
        private string output;

        public string Input { get => input; set => input = value; }
        public string Output { get => 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("非終端解釋器");
        }
    }
class Program
    {
        static void Main(string[] args)
        {
            Context context = new Context();
            IList<AbstractExpression> expressions = new List<AbstractExpression>();
            expressions.Add(new TerminalExpression());
            expressions.Add(new NonterminalExpression());
            expressions.Add(new TerminalExpression());
            expressions.Add(new TerminalExpression());
            foreach(AbstractExpression expression in expressions)
            {
                expression.Interpret(context);
            }
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章