0006JDK源码分析之服务提供者框架

Posted Java框架源码分析

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了0006JDK源码分析之服务提供者框架相关的知识,希望对你有一定的参考价值。

本文介绍基于静态工厂方法实现的服务提供者框架,阐述该框架的定义、基本组件这些基本概念,然后给出一个简单实现的案例,最后结合JDBC的实现分析该框架的应用场景。

本文大纲:

一、定义

二、基本组件

三、简单实现

四、JDBC案例

一、定义

多个服务提供者实现一个服务,系统为服务提供者的客户端提供多个实现,并把他们从多个实现中解耦。

二、组件

服务接口(Serviceinterface):这是服务提供者需要实现的接口。

服务提供者接口(ServiceProvider Interface):这是服务提供者负责创建其服务实现的实例接口。

提供者注册API(Provider Registration API):这是系统用来注册提供者的入口。

服务访问API(Service Access API):这是客户端获取服务实例的入口。

三、简单实现

1、类图

【0006】JDK源码分析之服务提供者框架

2、Java代码实现

服务接口代码如下:

【0006】JDK源码分析之服务提供者框架

服务提供者接口代码如下:

【0006】JDK源码分析之服务提供者框架

服务管理者代码如下:

【0006】JDK源码分析之服务提供者框架

四、JDBC案例

1、类图

2、应用场景描述

JDBC是应用了服务提供者框架的一个现实案例,Connection是JDK提供的操纵数据库的服务接口,不同的数据库的服务接口实现是不同的,如mysql和ORACLE;Driver是JDK提供的服务提供者接口,MYSQL和ORACLE也是有各自不同的实现机制,但最终都是提供Connection服务实例;DriverManager是JDK提供的服务管理者类,DriverManager.registerDriver是提供者注册API;DriverManager.getConnection是服务访问API。该框架将服务提供者从客户端进行了解耦,客户端需要什么服务,就只需要注册相应的服务提供者,然后就可以取得相应服务,易于拓展。

五、总结

本文介绍了服务提供者的的定义,基本组件,以及案例分析,相信大家也对该框架有了一定的了解,最重要还是结合业务应用,不断实战,才可以灵活应用。


以上是关于0006JDK源码分析之服务提供者框架的主要内容,如果未能解决你的问题,请参考以下文章

JDK日志框架源码分析

JDK源码分析之 Reference 框架概览

集合框架JDK1.8源码分析之Collections && Arrays

jdk源码阅读笔记之java集合框架(基础篇)

JDK源码分析之 Reference 实现和应用

源码阅读系列JDK 8 ConcurrentHashMap 源码分析之 由transfer引发的bug