概述
public class Services {
private Services(){}
private static final Map<String,Provider> providers = new ConcurrentHashMap<String,Provider>();
public static final String DEFAULT_PROVIDER_NAME = "<def>";
//provider register Api 提供者注册API,系统用来注册实现,让客户端访问它们的
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);
}
//service access api 客户端用来获取服务的实例的
public static Service newInstance(String name){
Provider p = providers.get(name);
if (p == null){
throw new IllegalArgumentException("No provider registered with name:"+name);//IllegalArgumentException此异常表明向方法传递了一个不合法或不正确的参数
}
return p.newService();
}
}
//服务接口:提供者实现
interface Service{
// ...
}
//提供者负责创建其服务实现的实例
interface Provider{
Service newService();
}
对于JDBC来说,
服务接口:Connection
提供者注册API:DriverManager.registerDriver
服务访问API:DriverManager.getConnection
服务提供者接口:Driver
最后
以上就是秀丽曲奇为你收集整理的服务提供者框架模式的全部内容,希望文章能够帮你解决服务提供者框架模式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复