解释器模式 矫情吗;* 2021-12-09 00:55 443阅读 0赞 ## 前言 ## **解释器模式(Interpreter)**,给定一个语言,定义它的文法的一种表示,并定义一个解释器吗,这个解释器使用该表示来解释语言中的句子。 ## 一、抽象表达式 ## 声明一个抽象的解释操作,这个接口为抽象语法树中所有的节点所共享。 1 public abstract class AbstractExpression 2 { 3 public abstract void Interpret(Context context); 4 } ## 二、终结符表达式 ## 实现与文法中的终结符相关联的解释操作。 1 public class TerminalExpression : AbstractExpression 2 { 3 public override void Interpret(Context context) 4 { 5 Console.WriteLine("终端解释器"); 6 } 7 } ## 三、非终结符表达式 ## 1 public class NonterminalExpression : AbstractExpression 2 { 3 public override void Interpret(Context context) 4 { 5 Console.WriteLine("非终端解释器"); 6 } 7 } ## 四、全局信息 ## 1 public class Context 2 { 3 public string Input { get; set; } 4 public string Output { get; set; } 5 } ## 五、客户端 ## 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 Context context = new Context(); 6 List<AbstractExpression> list = new List<AbstractExpression>(); 7 list.Add(new TerminalExpression()); 8 list.Add(new NonterminalExpression()); 9 list.Add(new TerminalExpression()); 10 11 foreach(var e in list) 12 { 13 e.Interpret(context); 14 } 15 Console.Read(); 16 } 17 } ## 总结 ## 1、解释器模式需要解决的是,如果一种特定类型的问题发生频率足够高,那么可能就值得将该问题的各个势力表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释通过解释这些句子来解决该问题。 2、通常当有一个语言需要解释执行,并且你可将该语言中的句子表示为一个抽象语法树时,可使用解释器模式。 3、容易改变和扩展文法,因为该模式使用类来表示文法规则,使用继承来改变或扩展该文法。也比较容易实现文法,因为定义抽象语法树中各个节点的类的实现类似,这些类都易于直接编写。 4、解释器模式问问法中的每一条规则至少定义了一个类,因此包含许多规则的文法可能难以管理和维护。建议当文法非常复杂时,使用其他的技术如语法分析程序或编译器来处理。 **参考书籍:**大话设计模式
相关 解释器模式 概述 ![watermark_type_d3F5LXplbmhlaQ_shadow_50_text_Q1NETiBA5rW35rex5LiN6KeB6bK4_size_1 男娘i/ 2023年10月03日 18:21/ 0 赞/ 30 阅读
相关 设计模式——解释器模式 设计模式——解释器模式 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly 客官°小女子只卖身不卖艺/ 2022年12月29日 14:16/ 0 赞/ 317 阅读
相关 解释器模式 转载:[解释器模式 - C语言中文网][- C] > 在软件开发中,会遇到有些问题多次重复出现,而且有一定的相似性和规律性。如果将它们归纳成一种简单的语言,那么这些问题实例将 Bertha 。/ 2022年09月01日 14:49/ 0 赞/ 304 阅读
相关 解释器模式 解释器模式 定义: 提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。 解释器角色: 抽 电玩女神/ 2022年07月13日 12:48/ 0 赞/ 335 阅读
相关 解释器模式 1.使用场景: 这个设计模式一般用来解释语句中的句子,实际开发中EL表达式或者正则表达式的解释器就是采用这种设计模式等。 2.UML表示 Expression:抽 柔情只为你懂/ 2022年05月31日 09:27/ 0 赞/ 329 阅读
相关 设计模式 : 解释器模式 解释器模式(interpreter) : 给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子. 解释器模式需要解决的是 以你之姓@/ 2022年05月27日 07:57/ 0 赞/ 364 阅读
相关 解释器模式 前言 解释器模式(Interpreter),给定一个语言,定义它的文法的一种表示,并定义一个解释器吗,这个解释器使用该表示来解释语言中的句子。 一、抽象表达式 矫情吗;*/ 2021年12月09日 00:55/ 0 赞/ 444 阅读
相关 解释器模式 23.解释器模式 ![70][] class Program { static void Main(string[] a Dear 丶/ 2021年09月17日 00:08/ 0 赞/ 486 阅读
相关 解释器模式 释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式... 小灰灰/ 2020年06月13日 05:43/ 0 赞/ 799 阅读
还没有评论,来说两句吧...