桥接模式是一种结构型设计模式。桥接模式的思想是:将抽象部分与它的实现部分分离,使它们均可以独立地变化。桥接模式将继承关系转换为关联关系,从而下降了类与类之间的耦合。java
桥接模式涉及4个角色:web
结构图:
sql
具体代码实现:设计模式
实现:ide
public interface Implementor {
void method();
}
public class ConcreteImplementorA implements Implementor {
@Override
public void method() {
System.out.println("this is A");
}
}
public class ConcreteImplementorB implements Implementor {
@Override
public void method() {
System.out.println("this is B");
}
}
桥:svg
public abstract class AbstractBridge {
private Implementor impl;
public Implementor getImpl() { return impl; }
public void setImpl(Implementor impl) { this.impl = impl; }
public abstract void method();
}
public class Bridge extends AbstractBridge {
@Override
public void method() {
getImpl().method();
}
}
客户:测试
public class Client {
public void use(AbstractBridge bridge) {
bridge.method();
}
}
// 测试
class BridgeTest {
public static void main(String[] args) {
Client client = new Client();
AbstractBridge bridge = new Bridge();
// 实现A
bridge.setImpl(new ConcreteImplementorA());
client.use(bridge);
// 实现B
bridge.setImpl(new ConcreteImplementorB());
client.use(bridge);
}
}
运行结果:this
this is A
this is Bspa
应用场景:设计
DriverManager
这个类就是桥,具体的MysqlDriver
,OracleDriver
等就是具体的实现。具体能够阅读源码。