将抽象与实现分离,使它们可以独立变化。
handle、body模式 ; 接口模式
应用场景
-
如果一个系统需要在抽象部分和实现部分增加更多的灵活性,避免两种变化的时候相互影响。
-
如果不希望使用继承而增加系统的复杂度,可以考虑使用桥接模式。
-
一个类存在两个独立变化的纬度,且这两个纬度都希望进行扩展。
-
当一个类存在两个独立变化的维度,且这两个维度都需要进行扩展时。
-
当一个系统不希望使用继承或因为多层次继承导致系统类的个数急剧增加时。
-
当一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性时。
public class BridgeTest {
public static void main(String[] args) {
Implementor imple = new ConcreteImplementorA();
Abstraction abs = new RefinedAbstraction(imple);
abs.Operation();
}
}
//实现化角色
interface Implementor {
public void OperationImpl();
}
//具体实现化角色
class Co