桥接模式
将抽象部分和实现部分分离,使他们可以独立的变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interfce)模式。
桥接模式将继承关系转化成关联关系,它降低了类与类之间的耦合度,减少了系统中类的数量,也减少了代码量。
优点
- 抽象和实现的分离
- 优秀的扩展能力
- 实现细节对客户的透明
缺点
桥接模式的引入会增加系统的理解与设计难度,由于聚合关联关系建立在抽象层,要求开发者针对抽象进行设计与编程。
案例
创建一个连接数据库的驱动,然后对每一个数据库提供各自的实现.对于使用某一个数据库的时候只需要切换一下就行.
public interface Driver {
public void connect();
}
public class MysqlDriver implements Driver {
@Override
public void connect() {
System.out.println("连接mysql数据库");
}
}
public class SqlServer implements Driver {
@Override
public void connect() {
System.out.println("连接sqlserver");
}
}
public abstract class Bridge {
private Driver driver;
public Driver getDriver() {
return driver;
}
public void setDriver(Driver driver) {
this.driver = driver;
}
public void connect() {
driver.connect();
}
}
public class MyBridge extends Bridge {
}
public class Test {
public static void main(String[] args) {
Bridge bridge = new MyBridge();
Driver driver = new MysqlDriver();
bridge.setDriver(driver);
bridge.connect();
}
}