常数处理机——多态的使用

我们知道编译原理中的常数处理机的流程图如下:

     1、这个流程图中有一个非常精彩的地方,引入了一个SumFun(State)方法,这样的话是的程序的逻辑非常的清楚,一个程序执行到一个State之后,应该进行相应的翻译动作了,就直接调用SumFun(State)方法,至于当前的状态应该执行什么样的翻译动作,由SumFun(State)方法自己判定,那么这个SumFun(State)方法就起到了一个枢纽的作用

     2、在面向对象的JAVA程序中,我们可以用多态的动态绑定方式达到相同的效果,对已这个常数处理机来说,我们可以定义一个State枚举类,枚举常量对象就是上面的几个状态,在这个枚举类中放入一个没有实现的SumFun()方法,之后让这些枚举常量对象来实现他们自己的不同的SumFun()方法,这样的话,当到达一个状态之后,我们要做的只是调用当前的状态枚举常量对象的SumFun()方法,这样的话是不是非常的棒,程序清楚的无可挑剔

posted @ 2015-01-21 09:12  RoperLee  阅读(428)  评论(0)    收藏  举报