设计模式 | 桥接模式

101 阅读1分钟

定义

将抽象部分与实现部分分离,使它们都可以独立地进行变化。

使用场景

一个类存在两个独立变化的维度,且这两个维度都需要进行扩展。

Java 代码示例

// 实现部分
public interface Implementor {
    void operationImpl();
}

public class ImplementorA implements Implementor {
    @Override
    public void operationImpl() {
    }
}

public class ImplementorB implements Implementor {
    @Override
    public void operationImpl() {
    }
}

// 抽象部分
public abstract class Abstraction {
    private Implementor mImplementor;

    public Abstraction(Implementor implementor) {
        mImplementor = implementor;
    }

    public void operation() {
        mImplementor.operationImpl();
    }
}

public class AbstractionA extends Abstraction {
    public AbstractionA(Implementor implementor) {
        super(implementor);
    }
    
    @Override
    public void operation() {
        super.operation();
    }
}

public class AbstractionB extends Abstraction {
    public AbstractionB(Implementor implementor) {
        super(implementor);
    }

    @Override
    public void operation() {
        super.operation();
    }
}