工厂模式的一个简单实现

匿名 (未验证) 提交于 2019-12-02 23:49:02
public class TestFactory {      /**      *      */     private static Map<String, TestInterface> beanMap = ContextUtil.getContext().getBeansOfType(TestInterface.class, false, false);      public static TestInterface getInstance(String infType) {         TestInterface curInstance = null;         for (String beanName : beanMap.keySet()) {             TestInterface instance = beanMap.get(beanName);             if (instance.getType() == null)                 throw new RuntimeException("接口实现类类型不可以为空");             else {                 if (infType.equals(instance.getType())) {                     curInstance = instance;                     break;                 }             }         }         return curInstance;     } }

根据Spring上下文得到某个接口的实现类。

public class ContextUtil implements ApplicationContextAware {      private static ApplicationContext context;      @Override     public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {         ContextUtil.context = applicationContext;     }      public static ApplicationContext getContext() {         return context;     } }
public interface TestInterface<T> {      String getType();      void testFunc(T t); }
public class TestInterfaceImpl implements TestInterface<String> {     @Override     public String getType() {         return "1";     }      @Override     public void testFunc(String s) {         System.out.println("TestInterfaceImpl -- 01");     } }
转载请标明出处:工厂模式的一个简单实现
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!