桥梁模式

定义

将抽象和实现解耦,使得两者可以独立地变化.

角色

  1. 抽象化角色

    定义出该角色的行为,同时保存一个对实现化角色的引用

  2. 实现化角色

    定义角色必需的行为和属性

  3. 具体抽象化角色
    引用实现化角色对抽象化角色进行修正
  4. 具体实现化角色
    实现接口或抽象类定义的方法和属性

优点

  1. 抽象和实现分离
  2. 优秀的扩充能力
  3. 实现细节对客户透明

通用代码

抽象化角色

public interface Implementor {

    void doSomething();

    void doAnything();
}

具体抽象化角色

public class ConcreteImplementor1 implements Implementor {
    @Override
    public void doSomething() {

    }

    @Override
    public void doAnything() {

    }
}

实现化角色

public abstract class Abstraction {
    private Implementor implementor;

    public Abstraction(Implementor implementor) {
        this.implementor = implementor;
    }

    public void request() {
        implementor.doSomething();
    }

    public Implementor getImplementor() {
        return implementor;
    }
}

具体实现化角色

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

    @Override
    public void request() {
        super.request();
        getImplementor().doAnything();
    }
}

你可能感兴趣的:(设计模式,桥梁模式,设计模式,java)