34. 使用枚举类型替代整型常量

基本类型常量无法提供类型安全的使用方式,也无法提供任何表达能力

35. 使用实例属性替代序数

36. 使用Enumset替代位属性

37. 使用EnumMap替代序数索引

序数跟随位置的变化而变化,不易维护和控制

38. 使用接口模拟可拓展的枚举

大部分情况下,枚举类不需要拓展

  1. public interface Operation{
  2. double apply(double x,double y);
  3. }
  4. public enum MathOperation implements Operation{
  5. PLUS{
  6. @Override
  7. public double apply(double x, double y) {
  8. return x+y;
  9. }
  10. },
  11. MINUS{
  12. @Override
  13. public double apply(double x, double y) {
  14. return x-y;
  15. }
  16. }
  17. }

39. 注解优于命名模式

40. 始终使用Override注解

保证父类方法被正常的重写

41. 使用标记接口定义类型