java多继承的思考(框架设计)

146 阅读1分钟

假如有多个类,继承一个公共接口,只想写一个通用方法,根据调用方法的变量名去找实现类

例如,以下效果,思考该如何实现

public class Test{

   // 根据aaa找到AaaImpl
   private xxxService aaa;
    
   public void test1(){
        //这样就可以找到AaaImpl的process方法
        aaa.process(null,null);
   }

}

public interface xxxService {
    Map process(String xxx,Map xxx) throws Exception;
}

public class AaaImpl implements xxxService {
    @Override
    public Map process(String xxx,Map xxx){
        return null;
    }
}

public class BbbImpl implements xxxService {
    @Override
    public Map process(String xxx,Map xxx){
        return new HashMap();
    }
}
...

spring框架已支持,@Qualifier("ProviderServiceImpl1")依赖注入@Service("ProviderServiceImpl1")