读书人

多路散发2[使用enum分发]

发布时间: 2012-09-10 22:20:12 作者: rapoo

多路分发2[使用enum分发]

直接将RoShamBo1.java翻译为基于enum的版本是有问题的,因为enum实例不是类型,

不能将enum实例作为参数的类型,所以无法重载eval方法。

?

利用构造器来初始化每个enum实例,并以"一组"结果作为参数。二者放在一块,形成了

类似查询表的结构。

?

?

compete()方法中, 一旦2种类型都被确定了,唯一的返回的结果是Outcome。

ranked还可能需要调用其他的方法,设置是调用在构造器中指定的某个明路对象上的

方法。

?

在RoShamBo1.java中, 2次分发多是通过实际的方法调用实现,而例子中,只有一次

分发是实际的方法调用。第二个分发使用的是switch,不过这样做是安全的,因为

enum限制了switch语句的选择分支。

读书人网 >编程

热点推荐