繁体   English   中英

创建单例工厂

[英]Creating singleton factory

        String fullName = PATH + "." + name;
        Class cl= Class.forName(fullName);
        if(name.equalsIgnoreCase("MobileSearch")){
            if(msearchType==null){
                msearchType=(SearchInterface)cl.newInstance();
            }
            return msearchType;

        }
        if(name.equalsIgnoreCase("BookSearch")){
            if(bsearchType==null){
                bsearchType=(SearchInterface)cl.newInstance();
            }
            return bsearchType;

        }

我如何摆脱这里的if语句。
我正在使用反射。
请帮忙。 提前致谢。

使用地图:

if (!searchInstances.containsKey(name)) 
{
  searchInstances.put(
    name, 
    (SearchInterface)Class.forName(PATH + "." + name).newInstance()
  );
}

return searchInstances.get(name); 

您是否只是返回SearchInterface的实例? 如果是这样,为什么不:

String fullName = PATH + "." + name;

Class cl= Class.forName(fullName);                
if(searchType==null){                                
     searchType=(SearchInterface)cl.newInstance();
}                        
return searchType;

希望能有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM