桥接模式(Bridge Pattern)是Java开发中常见的设计模式之一,属于结构型设计模式,用于将抽象部分与实现部分分离
,使它们可以独立地变化。桥接模式通过将抽象和实现分离
,可以使它们可以独立地变化,而不会相互影响,下面通过Java代码来看看它的使用用法。
// 实现接口
interface Implementor {
void operationImpl();
}
// 具体实现类A
class ConcreteImplementorA implements Implementor {
@Override
public void operationImpl() {
System.out.println("ConcreteImplementorA ");
}
}
// 具体实现类B
class ConcreteImplementorB implements Implementor {
@Override
public void operationImpl() {
System.out.println("ConcreteImplementorB ");
}
}
// 抽象类
abstract class Abstraction {
protected Implementor implementor;
public Abstraction(Implementor implementor) {
this.implementor = implementor;
}
public abstract void operation();
}
// 扩展抽象类
class RefinedAbstraction extends Abstraction {
public RefinedAbstraction(Implementor implementor) {
super(implementor);
}
@Override
public void operation() {
System.out.println("RefinedAbstraction ");
implementor.operationImpl();
}
}
// 测试代码
public class BridgePatternExample {
public static void main(String[] args) {
Implementor implementorA = new ConcreteImplementorA();
Abstraction abstractionA = new RefinedAbstraction(implementorA);
abstractionA.operation();
Implementor implementorB = new ConcreteImplementorB();
Abstraction abstractionB = new RefinedAbstraction(implementorB);
abstractionB.operation();
}
}
优点:
- 将
抽象部分和实现部分分离
,使它们可以独立变化。 - 可以
减少子类的个数
,避免类爆炸问题。
缺点:
- 增加了系统的复杂度,因为需要
额外的抽象层次
。
使用场景:
- 当需要
抽象部分和实现部分
独立变化时,可以使用桥接模式。 - 当需要
避免在抽象部分和实现部分
之间有固定的绑定关系时,桥接模式是一个很好的选择。