Sha*_*Sha 5 java oop design-patterns
我的代码如下所示:
enum EnumType {
 CATEGORY,
 GROUP,
 MAIN
}
方法:
public void call(EnumType type){
   switch(type):
     case CATEGORY:
        return methodForCategory();
     case GROUP:
        return methodForGroup();
     ...
}
public void methodForCategory(){
   ... Operations according to EnumType.CATEGORY
}
public void methodForGroup(){
   ... Operations according to EnumType.GROUP
}
public void methodForMain(){
   ... Operations according to EnumType.MAIN
}
但是我想在没有开关/情况下调用它,如下所示;
public void call(EnumType type){
    methodForType(EnumType type);
}
有可能还是有更好的选择?
您可以在枚举内创建方法实现,如下所示:
public enum EnumType {
  CATEGORY {
    @Override
    public void processMethod() {
      // Do something here
    }
  },
GROUP {
    @Override
    public void processMethod() {
      // Do something here
    }
  },
MAIN {
    @Override
    public void processMethod() {
      // Do something here
    }
  };
public abstract void processMethod();
}
并将调用方法实现更新为:
public void call(EnumType type){
   type.processMethod();
}
切换代码不应返回任何内容,因为方法的返回类型为void。