考虑用静态工厂方法替代构造器
public interface Service {
}
//
public interface Provider {
Service newService();
}
///
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
public class Services {
private Services(){}
private static final Map<String,Provider> providers = new ConcurrentHashMap<String,Provider>();
public static final String DEFAULT_PROVIDER_NAME = "<def>";
public static void registerDefaultProvider(Provider p){
registerProvider(DEFAULT_PROVIDER_NAME, p);
}
public static void registerProvider(String name, Provider p) {
providers.put(name, p);
}
public static Service newInstance() {
return newInstance(DEFAULT_PROVIDER_NAME);
}
public static Service newInstance(String name) {
Provider p = providers.get(name);
if (p == null)
throw new IllegalArgumentException("No provider register with name: " + name);
return p.newService();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Service s = newInstance();
Service sCustomer = newInstance("customer");
}
}
轉(zhuǎn)載于:https://www.cnblogs.com/mzxl1987/p/7803124.html
總結(jié)
以上是生活随笔為你收集整理的考虑用静态工厂方法替代构造器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 蓝屏电脑打不开怎么办啊 解决蓝屏无法启动
- 下一篇: ECMAScript arguments