1、用enum代替int常量 2、用实例域代替序数 3、用EnumSet代替位域 4、用EnumMap代替序数索引 5、用接口模拟可伸缩的枚举 6、注解优先于命名模式 7、坚持使用Override注解 8、用标记接口定义类型