Bridge理解的关键即理解所谓的“抽像化”与“实例化”,下面举例子说明:
1、 Java的Swing在不同的操作系统下的编程接口是“不变的”即,Swing的编程接口是一种抽像;而具体的图形显示的任务则交给了每种操作系统下相应的低层类,这个低层类是一种具体的实现,Win下有WIn下的实现,Unix下有Unix下的实现。如下图:
抽像层的Component通过 Toolkit与实现层的 ComponentPeer 进行交互,具体层的实现运行时动态的决定。
2 JDBC的例子
JDBC提供通用的 Java接口操作数据库,但不同的数据库必须有不同的实现化的驱动,结构如下图:
JDBC API 是不变的,抽像的
Oracle/MySql 等驱动是变化的,需要具体实现的。