温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
Java设计模式之解释器模式,我们来看一下。我们还是看一个问题,那现在呢,有这么一个问题,请大家思考一下,说我们要做一个四则运算,这个四则运算里面呢,我们只考虑加法和减法。乘法和除法我们先不去考虑好吧,因为我们这主要是讲解的设计模式,并不是说要去做一个计算器。那么这个式子运算的需求是这样子的,他说通过解释器模式,他直接直接就让我们用解释器模式了。那用这个解析器模式来实现一个式,则运算比加和减,比如说我们这有有这么一个算式,叫A加B减C,那具体要求是什么样子的呢?先输出表达式的形式,比如A加B加C减D减,减D加E。假如说这是它的一个。这是它的一个表达式的形式,要求表达式的字母呢,不能重复,你看这里是不是有ABCDE4个字母呀?
01:01
那么他他让我们呃,把这个四四个字母说完了过后,再分别输入abcde的值。那么如图,比如说我这里说了一个表达式是A加B加C减去一个de,再加E,那分别呢?我把abcde的值输进去,最后运算的结果是23。这个就是我们的一个需求,那要求呢,我们用解释器模式来做,那同学们想一想,这个题如果我们用传统方法来做,你会怎么实现啊?如果是用传统方式来解决这么一个运算的话呢,一般我们是这样做的,我们编写一个方法。接收表达式的形式。那个表达式形示性还是要接收一下的,对不对,然后根据用户输入的数字进行解析。得到这个结果。一般都是这样做的嘛,但是这样做呢,它有一个问题,如果我们加入新的运算符,比如说乘法或者是除法。等等,这样就不利于扩展,另外呢,让一个方法来解析,会造成程序结构比较混乱。
02:06
不够清晰,因为你呃,这个这个运算式它可能会很复杂嘛,加减乘除可能都有,如果你放在一个地方去进行这么一个解析的话呢,那这个这个方法本身也会变得比较复杂,变得比较臃肿,所以说代码就不够清晰。解决方案呢,在这种情况下,在我们编程领域呢,一般会使用一个叫做解释器模式来解决它的基本思想,或者叫核心思想是先拿到一个表达式。当然这个表达式里面呢,会有对应的值,然后呢,使用我们这个解释器,注意这个解释器可以有多种。哎,比如说我是对加法的一个解释器,还有对减法的一个解释器,对乘法的一个解释器,对除法的一个解释器等等,我用不同的解释器来处理,最后呢,得到一个结果。OK,那同学们看,这个就是我们的一个传统方案,那有了这样一个东西过后呢,我们我们知道用传统方法方法存在的问题过后,我们就引出了我们要讲的。
03:08
这个解释器模式,那下面呢,我们就来看看解释器模式到底是怎样一个概念。
我来说两句