- 4
- 0
- 约1.37万字
- 约 12页
- 2016-10-18 发布于贵州
- 举报
Java服务提者框架
Java服务提供者框架
一、介绍
服务提供者框架是指:多个服务提供者实现一个服务,系统为客户端提供多个实现,并把他们从多个实现中解耦出来。服务提供者的改变对它们的客户端是透明的,这样提供了更好的可扩展性。例如,JDBC,JMS等就是用了服务提供者框架
从字面意思看就是:实现服务提供者提供服务功能的设计结构,主体有服务、服务提供者。反映到我们程序中,通常有四个组件:
Service Interface:服务接口,将服务通过抽象统一声明,供客户端调用、由各个服务提供者具体实现。
Provider Registration API:服务提供者注册API,用于系统注册服务提供者,使得客户端可以访问它实现的服务。
Service Access API:服务访问API,用户客户端获取相应的服务。
Service Provider Interface:服务提供者接口,这些服务提供者负责创建其服务实现的实例。(可选)
简单说就是服务接口定义服务,服务提供者接口产生服务实例。
二、详细介绍
我们通过一个生活中的例子介绍服务提供者框架。大家都知道都在我们国家盐是规定必须加碘才能在市场上卖的。食盐又分为海盐和内陆盐,食盐生产厂家在要生产食盐之前都必须去监局登记。
package com.framework.salt;
/**
* 食盐
* @author yangdecai
*
*/
public interface Salt {
/**
* 加碘
*/
void addIodine();
}package com.framework.salt;
/**
* 海盐
* @author yangdecai
*
*/
public class BaySalt implements Salt{
/**
* 加碘
*/
public void addIodine() {
System.out.println(海盐加碘...);
}
}package com.framework.salt;
/**
* 内陆盐
* @author yangdecai
*
*/
public class InlandSalt implements Salt {
/**
* 加碘
*/
public void addIodine() {
System.out.println(内陆盐加碘...);
}
}package com.framework.salt;
/**
* 生产盐
* @author yangdecai
*
*/
public interface SaltProvider {
Salt getSalt();
}package com.framework.salt;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* 盐监司
*
* @author yangdecai
*
*/
public class SaltManager {
/**
* 食盐生产厂商登记档案
*/
private static final Map providers = new ConcurrentHashMap();
/**
*
* @Function:食盐厂商登记
* @param name
* @param p
*/
public static void registerProvider(String name, SaltProvider p) {
providers.put(name, p);
}
/**
*
* @Function: 获取食盐
* @param name
* @return
*/
public static Salt getSalt(String name) {
SaltProvider p = (SaltProvider) providers.get(name);
if (p == null) {
throw new IllegalArgumentException(
No SaltProvider registered with name: + name);
}
return p.getSalt();
}
}
现在各种规定都出台了,食盐生产商也发明了自己的加碘方式,接下来食盐厂商可以盛产食盐了,不过生产之前得先向盐监司注册一下吧,否则就是非法生成,这个后果可是很严重的。盐监司设立的有注册登记的地方,自己去登记吧。内陆盐和海盐厂商都有自己的盐的生产方式。
p
您可能关注的文档
最近下载
- 音体美教学常规要求.doc VIP
- (2025)新课标《义务教育数学课程标准(2022年版)》测试题(附含答案) .pdf VIP
- 质量工程师中级培训教程.doc VIP
- 高中英语(北师大版)必修3—单词表.pdf VIP
- Unit 1 Time to Relax (第1课时) Section A 1a- 2d 课件 2026年春人教版英语八年级下册.pptx VIP
- QE质量工程师培训完整版教材.ppt VIP
- 杜曼教育——如何教宝宝学数学.pdf VIP
- 香港小学中文修辞手法练习.pdf VIP
- 2025-2026学年初中数学八年级上册(2024)沪教版(五四制)(2024)教学设计合集.docx
- GNSS接收机抗干扰技术研究.pptx VIP
原创力文档

文档评论(0)