00:00
解释器模式的注意事项和细节,我们来看一下三点。当一个语言需要有解释执行,可将该语句的句子表示成一个抽象的语法数,就可以考虑使用解释器模式,让程序呢具有良好的扩展性。就是简世界模式。它可以让我们。程序的扩展性变得比较好。它的应用场景呢,刚才我们重点使用的就是像这种计算表达式,或者是编译器里面会用到,正则表达式里面也会用到。但是解释器模式呢,它也可能带来一些问题,因为解释模式呢,往往往解决的也是比较。麻烦的问题,就它本身是解决比较麻烦的问题,所以说它带来的问题是解释器模式可能会引起类的膨胀。简释模式,它会采用递归调用的方法,因为大家可以看到它会把我们一个表达式呢整看成一个整体,但是在做处理的时候,一般会用到递归调用。
01:03
因此这样子的话呢,它会导致我们调试比较复杂调试。变得比较复杂,而且效率可能会受影响。但归根结底就是解释器模式,它本身解决的问题就比较复杂。所以说这一点呢,我们在做开发的时候要注意体会就行了,不要说咱什么什么东西拿来都用解释器模式对不对,因为它本身是解释一些,去处理一些比较棘手的问题,你才选用,比如像编译器,它本身就比较难。比如说计算,咱们做这个运算表达式,计算正则表达式,有些同学学正则表达式本身都学的模模糊糊的,然后还让你去写一个解释,去把它解释清楚,你想难度还是比较大的。所以解释器模式呢,大家要慎用哈,就是尤其是你,尤其是在需要的地方再去用,不要不要说,诶我只要觉得可以用一个解释器模式,我就拿来用,因为它本身解决一些比较比较挠头的问题,他们再再去考虑考虑使用解释器模式,那现在呢,我们把解释器模式讲的内容进行一个简单的梳理,我们来看一下我们讲的是怎样的一个流程,首先呢。
02:10
我们把这个笔记给大家处理一下。好,打开我们的笔记,我们把这个笔记给他补一补,好各位同学。打开的有点慢。往下走。现在我们讲的是解释器模式。先分一个页。解解释器。模式。那解释器模式我们是怎么讲的呢?首先我们仍然是提出了一个运算问题。引起大家思考。怎么提的这个问题啊,我们说需要输入。
03:00
一个表表达式,这个表达式里面还有我们的字母,还有我们的运算符,然后最后这个结果呢,能够给我们正确的显示。这是我们提出的一个问题。提出这个问题以后呢,我们显然就先进行了一个思考。我们说先用传统的方法来解决。那传统的方法来解决呢,我们发现哈,呃,他一般来讲就是通过写一个方法来处理的。但是。在这里分析我们也指出来了。如果说。我们使用的是一个方法。那么它的扩展性并不是很好,而且呢,当我们加入一些新的预算符,这本身这个方法也会变得比较臃肿,因为你一个方法解析会造成程序比较混乱。而且你想一想,你一个方法要去处理很复杂的一个表达式,你觉得容易吗?本身它就很难,所以这个方式呢,我们就抛弃了。
04:00
我们就考虑的是用显示器模式来解决。显视器模式既然要解决,首先呢,我们来说一下减视器模式的基本介绍。说什么是解释器模式是不是?在实践模式呢,我们总结了有这么几点,四点。分别给大家做了一个介绍,我们看一下。从这开始捋。给他一个编号就可以了。啊G诶这边就没有这么多哈。应用场景这个地方就不要这么多了。这是应用场景。具体来说呢,显示器模式它的定义是这样子的,指定是指给一个表达式,或者说一个语言。定义它的文法,定义它的文法表示,然后呢,并定义一个解释器。最后用这个解释器呢,来解释这一个句子或者是表达式,当然最后得到一个结果,它这个就是解释器的概念,那有了解释器概念过后呢,大家可能是听的不是很清晰,所以说我们就画了一个类图。
05:06
帮助同学们理解解释器模式是什么。所以说我们在这里呢,画了显示器模式的类图,同时呢,我们对显示器模式里面涉及到的角色和他各自的职责也做了一些说明。把这个类图呢给同学们拿过来。便于复习。当我们对解释器模式有了基本认识以后,自然就开始来写代码了,是不是写代码这个代码呢?相对来说它的程序比较程序结构或者逻辑上还是有有些困难的,因此呢,我们在讲的过程中,重点是放在对设计模式的一个梳理。吧,程序本身呢,我们就是给他说了一下是怎么写的。我们同样也画了一个类图,把这个类图呢拿过来在哪里呢?我们找一下。解释器模式应该是在这画的类图是这样子的吧,同学们好,我们把图呢给各位朋友板示过来。
06:06
这是我们用解释器模式来解决市值运算的类图。有了这个类图过后,我们就开始写代码了,代码量呢比较大,对我们直接干脆这样子还是老规矩。把这个包整体给大家放到笔记中。最后源码我们还是要单独的放到文件夹。放到这里来就可以。这是代码的实现,代码实现完了以后呢?为了加深对解释器模式的理解,我们仍然是在spring框架里面找到了解释器模式的应用场景。在哪里呢?在SP expression pattern里面我们就看到了解释器它的一个应用场景。我们放到这边。在这里我们做了源码的分析,同时呢,我们也做了源码的说明。看一下。源码这块我们就简单一点,直接把老师在。
07:04
换成编写的拿过来就行了,大家可以看到核心是在哪里呢?核心在这块对吧。在这里从我们这边分析来说呢,我们可以看到。Spring框架里面用解释器模式的时候,其实它是根据你这创建的趴着对象不同,返回不同的expression。对象,然后呢,进行一个解释执行是这样子来玩的,所以说下面呢,我们对他进行进行了说明。进行了说明。这是第三点说明。第三点说明呢,干脆这样子,内容相对比较多,我截个小图就可以。从这里我们可以看到根据你的趴的对象不同,返回不同的expression对象,然后呢,完成对表达式的一个求职问题。最后,我们还是老规矩,给大家分析一下解释器模式可能带来的问题。总而言之,大家听这个减视器,你你会发现减视器模式呢,还是比较复杂的,因为它本身就是解决的相对比较棘手的问题,所以说我们在使用解释器的时候呢,要慎用,就是你确实能够驾驭住解释器模式,你才用,否则的话呢,你还是老老实实的写一个方法。
08:19
啊,或者说把这个比较困难的解决方案交给你的。项目经理或者你认为技术比较到位的人来去写。否则的话,显示器。不但你没显示器模式,不但你没写完,反而这个这个应用你还你还没把它完成对不对,耽误你的时间,所以说所以说同学们要根据你的实际情况来选择,那关于显示器模式的内容梳理呢,我们就到这个地步。
我来说两句