有点难理解,主要有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();

    }
}

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

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

posted on 2020-04-27 11:12  Vinlen  阅读(103)  评论(0编辑  收藏  举报