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
最后
以上就是秀丽曲奇最近收集整理的关于服务提供者框架模式的全部内容,更多相关服务提供者框架模式内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复