桥接模式

桥接模式指将抽象部分和它的实现部分分离,使他们都可以独立的变化。注意这并不是说让抽象类与其派生类分离,因为这没有任何意义。那么什么是桥接模式?举例来说,手机既可以用品牌分类,也可以用功能分类。

按品牌分类实现如下图。

按软件分类实现如下图。

由于实现方式有多种,因此可以使用桥接模式把这些实现独立出来,让他们各自的变化。这就使得每种实现的变化不会影响其他实现,从而达到应对变化的目的。

桥接模式示例

下面代码是一个桥接模式的实现示例。

Implementor.java

public abstract class Implementor {
    public abstract void operate();
}

ConcreteImplementorA.java

public class ConcreteImplementorA extends Implementor {
    @Override
    public void operate() {
        System.out.println("具体实现A");
    }
}

ConcreteImplementorB.java

public class ConcreteImplementorB extends Implementor {
    @Override
    public void operate() {
        System.out.println("具体实现B");
    }
}

Abstraction.java

public abstract class Abstraction {
    protected Implementor implementor;

    public void setImplementor(Implementor implementor) {
        this.implementor = implementor;
    }

    public abstract void operation();
}

RefinedAbstraction.java

public class RefinedAbstraction extends Abstraction {
    @Override
    public void operation() {
        this.implementor.operate();
    }
}
作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。
Copyright © 2017-2024 Gacfox All Rights Reserved.
Build with NextJS | Sitemap