C# 设计模式 行为型模式 之 解释器模式

解释器模式 提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。

总结:提供抽象 表达式 并提供参数,实现类 传参 然后比较 表达式 提供的 参数

场景:运算表达式计算。

优点: 1、可扩展性比较好,灵活。 2、增加了新的解释表达式的方式。 3、易于实现简单文法。

下面 使用 简单例子 描述 解释器模式:

namespace 解释器模式
{
    internal class Program
    {
        static void Main(string[] args)
        {
            AndExpression andExpression = new AndExpression(new TerminalExpression("张三"), new TerminalExpression("张三"));
            bool result= andExpression.Interpret("张三");
            Console.WriteLine("比较结果返回:" + result);
            /*
             * 控制台 : 比较结果返回:True
             */
        }
    }
    //表达
    public interface Expression
    {
        bool Interpret(string context);
    }
    //比较模板
    public class TerminalExpression : Expression
    {
        private string data;
        public TerminalExpression(string data)
        {
            this.data = data;
        }
        public bool Interpret(string context)
        {
            if(data == context)
            {
                return true;
            }
            return false;
        }
    }
    //使用TerminalExpression模板 进行&&比较 解释表达式
    public class AndExpression : Expression
    {
        Expression expression1 = null;
        Expression expression2 = null;
        public AndExpression(Expression expression1, Expression expression2)
        {
            this.expression1 = expression1;
            this.expression2 = expression2;
        }
        public bool Interpret(string context)
        {
            return expression1.Interpret(context) && expression2.Interpret(context);
        }
    }
}

缺点: 1、可利用场景比较少。 2、对于复杂的文法比较难维护。 3、解释器模式会引起类膨胀。 

猜你喜欢

转载自blog.csdn.net/q8812345qaz/article/details/127602972
今日推荐