枚举类与其行为无法很好的绑定
枚举类与行为绑定的操作一般使用switch-case来进行操作,这模式有缺点,比如增加了一个新的枚举常量,但是switch-case中没有增加,这是常有的事情,因为switch-case...枚举字段是该枚举类的一个静态常量对象,且用数组存储.
values实际上是调用clone方法,其会创建新数组,数组中放入所有枚举字段....构造函数前两个默认为枚举字段名称,以及所处的顺序.也就是Enum中的name与ordinal....如何与行为绑定
从反编译的代码来看枚举类是可以实现接口的,那么就可以利用接口定义行为,然后枚举类中覆盖行为.同样假设每一个枚举字段所对应的行为不同,那么直接内部覆盖掉也是很好的策略,这种情况下也叫策略枚举模式...枚举类的实例化可以看做为饿汉式的单例,实际上是一个简单而又有效的模式,包括kotlin的object单例关键字也是使用了类似的方式.