30. 用enum代替int常量

枚举是单例的。类型检查等措施保证其安全可靠。

枚举类中需要引用自有的枚举值做判断,建议使用策略枚举。即将引用枚举值的行为方法定义成一个内部枚举类,传递给枚举类的构造器中。例子见书P135。策略枚举是策略模式的一种延伸。

31. 用实例代替序数

枚举是有个int值序数来维护顺序的。但是避免用这ordinal()方法来获取序数。该方法仅在设计像EnumSet和EnumMap这样的类的时候才使用

32. 用EnumSet来代替位域

有时候需要将多个枚举值按照位运算的方式来做并交的操作,这个可以交个EnumSet来做,其本身内部实现也是采用位运算的方式。

33. EnumMap来代替序数索引

需要键值对来索引枚举值时使用该数据结构

34. 用接口模拟可伸缩的枚举

枚举可以实现接口。

35. 多使用注解

36. 坚持使用Override注解

37.用比较接口定义类型

需要定义类型的时候就使用标记接口。注意和标记注解的区别。

java.io.Serializable就是使用标记接口的例子。因为需要这个类型。