首页 > 代码库 > 《Effective Java》服务提供者框架

《Effective Java》服务提供者框架

静态工厂方法返回的对象所属的类,在编写包含该静态工厂方法的类时可以不必存在。这种灵活的静态工厂方法构成了服务提供者框架(Service Provider Framework)的基础,例如JDBC API。服务提供者框架是指这样一个系统:多个服务提供者实现一个服务(接口),系统为服务提供者的客户端提供多个实现,并把他们从多个实现中解耦出来。

服务提供者框架中有四个重要的组件:

  • 服务接口(Service Interface),这是提供者实现的。如JDBC的Connection
  • 提供者注册API(Provider Registration API),这是系统用来注册提供者实现,让客户端访问它们的。如DriverManager.registerDriver
  • 服务访问API(Service Access API),是客户端用来获取服务的实例的。如DriverManager.get
  • 服务提供者接口(Service Provider Interface)这些提供者负责创建其服务实现的实例。这是可选的。如Driver

如果没有服务提供者接口,实现就按照类名称注册,并通过反射方式进行实例化。接口优于反射机制强烈建议使用服务提供者接口。

《Effective Java》服务提供者框架