设计模式-桥接模式

Posted vinlen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式-桥接模式相关的知识,希望对你有一定的参考价值。

有点难理解,主要有4个角色 抽象调用 具体调用  抽象实现 具体实现。大概的意思就是抽象调用调用抽象实现。由具体调用和具体实现来拓展功能

抽象实现

public interface Implemter {
    void implemt();
}

具体实现

public class ImplemterImpl implements Implemter {
    @Override
    public void implemt() {
        System.out.println("具体实现的操作");
    }
}

抽象调用

abstract class AbstractRequester {
    protected Implemter imp;

    public AbstractRequester(Implemter implemter) {
        this.imp = implemter;
    }
    public abstract void request();
}

具体调用

public class AbstractRequestImpl extends AbstractRequester {
    public AbstractRequestImpl(Implemter imp) {
        super(imp);
    }

    @Override
    public void request() {
    imp.implemt();
    }
}

测试类

public class Client {
    public static void main(String[] args) {
        ImplemterImpl implemter = new ImplemterImpl();
        AbstractRequestImpl abstractRequest = new AbstractRequestImpl(implemter);
        abstractRequest.request();

    }
}

总结:在桥接模式里,调用类关联实现类对象,抽象调用和抽象实现抽象出方法,由具体调用调用具体实现来实现拓展,哪怕以后功能进行拓展也无需更改抽象类,只需继承/实现来重写超类中的方法。

应用场景:当一个类里有两个独立拓展时,或者不希望因为多层次继承来增加项目的复杂度时,可以使用桥接者模式,调用类和实现类各有一个超类,重写方法即可完成修改。

以上是关于设计模式-桥接模式的主要内容,如果未能解决你的问题,请参考以下文章

案例分析:设计模式与代码的结构特性

23种设计模式之桥接模式代码实例

设计模式之桥接模式

PHP设计模式—桥接模式

桥接模式 C++ 代码编译错误

桥接模式-代码实现