参考:https://design-patterns.readthedocs.io/zh_CN/latest/structural_patterns/bridge.html
桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。
角色:
- Abstraction:抽象类
- RefinedAbstraction:扩充抽象类
- Implementor:实现类接口
- ConcreteImplementor:具体实现类
------------------------------------------------------------
简单来说,就是把多个抽象的维度,分离到BaseClass 的引用中去,这样可以各自继承变化。
public abstract class BaseClass {
public BaseInterface baseInterface;
public void doBaseClass() {}
}
public class BaseClassImp extends BaseClass{
@Override
public void doBaseClass() {
baseInterface.doInterface();
}
}
public interface BaseInterface {
void doInterface();
}
public class InterfaceImp implements BaseInterface{
@Override
public void doInterface() {
}
}
应用实例:
JDBC将抽象与具体实现分离,从而使得抽象部分(API)和具体实现可以独立扩展。对于应用程序来说,只要选择不同的JDBC驱动,就可以让程序操作不同的数据库,而无需改变应用程序,从而实现在不同数据库上的切换;对于驱动程序而已,为数据库实现不同的驱动程序,并不会影响应用程序。