JDBC是使用Bridge模式进行设计的,DriverManager就是其中的Abstraction,oracle.jdbc.driver.OracleDriver就是Implementor,oracle.jdbc.driver.OracleDriver是Implementor的一个具体实现(请参考GOF的Bridge模式的描述,前一个Driver是一个接口,后者是一个实现了前面的Driver接口的类。
Bridge模式中,Abstraction(DriverManager)是要拥有一个Implementor(Driver)的引用的,但是我们在使用过程中,并没有将Driver对象注册到DriverManager中去啊,这是怎么回事呢?jdk文档对Driver的描述中有这么一句:
When a Driver class is loaded, it should create an instance of itself and register it with the DriverManager
是oracle.jdbc.driver.OracleDriver在装载完后自动帮我们完成了这一步骤。