桥接模式是为了不通过继承来聚合类与类之间的关系。
示例代码:
定义一个接口。
public interface BridgeInterface {
public void Function();
}
接口实现类
public class InterfaceImplA implements BridgeInterface {
@Override
public void Function() {
System.out.println("ImplA执行了Function方法");
}
}
抽象类,用于扩展。
public abstract class BridgeAbstaction {
// 持有一个BridgeInterface接口对象
private BridgeInterface bridgeInterface;
public BridgeAbstaction(BridgeInterface bridgeInterface) {
this.bridgeInterface = bridgeInterface;
}
// 可能需要被调用的实现。
public void operation() {
bridgeInterface.Function();
}
}
抽象实现类
public class AbstactionImpl extends BridgeAbstaction {
public AbstactionImpl(BridgeInterface bridgeInterface) {
super(bridgeInterface);
}
/**
* 这样代码就可以扩展开来了。
*/
public void otherOperation() {
}
}
客户端调用
public class TestBridge {
public static void main(String[] args) {
InterfaceImplA interfaceImplA = new InterfaceImplA();
interfaceImplA.Function();
AbstactionImpl abstactionImpl = new AbstactionImpl(interfaceImplA);
abstactionImpl.otherOperation();
}
}