服务提供者框架(Service Provider Framework)

服务提供者框架是指:多个服务提供者实现一个服务,系统为客户端提供多个实现,并把他们从多个实现中解耦出来。服务提供者的改变对它们的客户端是透明的,这样提供了更好的可扩展性。例如,JDBC,JMS等就试用了服务提供者框架。

      服务提供者的组件:

      Service Interface:服务接口,通过抽象统一声明,由服务提供者实现。

      Provider Registration API:服务提供者注册API,用于系统注册服务提供者,使得客户端可以访问它实现的服务。

      Service Access API:服务访问API,用户客户端获取相应的服务。

      Service Provider Interface:服务提供者接口,这些服务提供者负责创建其服务实现的实例。

      其中,Service Provider Interface是可选的,如果没有Service Provider Interface,可以通过类名进行注册,并通过反射进行实例化。

      对于JDBC来说,Connection就是服务接口,Orcale、SQLServer、MySQL等是服务提供者,它们实现相应的服务接口;DriverManager.registerDriver是提供者注册API,向DriverManager注册给定驱动程序;DriverManager.getConnection是服务访问API;Driver就是服务提供者接口。

相关推荐