设计模式——桥接模式

桥接模式,将抽象和实现解耦, 使得两者可以独立地变化。桥接模式能够保证各个承担不同业务的行为类的独立性,同时也能对行为类的方法进行扩展。
示例代码:

// 业务类的接口
public interface Implementor {

    // 业务方法
    public void operation();

}

// 具体业务类A
public class ConcreteImplementorA implements Implementor{

    @Override
    public void operation() {
        // 具体业务类A的业务方法
    }

}

// 具体业务类B
public class ConcreteImplementorB implements Implementor{

    @Override
    public void operation() {
        // 具体业务类B的业务方法
    }

}

// 桥接抽象类
public abstract class Abstraction {

    // 引用行为类对象
    private Implementor implementor;

    public Implementor getImplementor() {
        return implementor;
    }

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

    // 桥接类的方法调用行为类的方法
    public void operation(){
        this.implementor.operation();
    }

}

// 抽象桥接类的一个具体实现类
public class ConcreteAbstraction extends Abstraction {

    @Override
    public void operation() {
        // 这里可以进行扩展
        super.getImplementor().operation();
    }

}

// 测试类
public class Test {

    public static void main(String[] args) {
        Abstraction abstraction = new ConcreteAbstraction();
        // 桥接类调用实现类A
        abstraction.setImplementor(new ConcreteImplementorA());
        abstraction.operation();
        // 桥接类调用实现类B
        abstraction.setImplementor(new ConcreteImplementorB());
        abstraction.operation();
    }

}

桥接模式将抽象和实现解耦,二者不互相影响,同时抽象部分和具体实现部分都能方便的进行扩展。
使用场景:
如果一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性,避免在两个层次之间建立静态的继承联系,通过桥接模式可以使它们在抽象层建立一个关联关系。
抽象化角色和实现化角色可以以继承的方式独立扩展而互不影响,在程序运行时可以动态将一个抽象化子类的对象和一个实现化子类的对象进行组合,即系统需要对抽象化角色和实现化角色进行动态耦合。
一个类存在两个独立变化的维度,且这两个维度都需要进行扩展。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值