桥接模式

      桥接模式(Bridge:将抽象部分与它的实现部分分离,使它们都可以独立地变化。(这里的实现部分是指抽象类和子类用来实现自己的对象)

类图:

代码:

publicabstractclass Abstract {

    protected Implement implement;

    publicvoid SetImplement(Implement impl){

       this.implement=impl;

    }

    publicabstractvoid operation();

}

publicclass RefinedAbstraction extends Abstract{

    @Override

    publicvoid operation() {

       if(super.implement!=null){

           super.implement.operationImpl();

       }

    }

}

publicabstractclass Implement {

    publicabstractvoid operationImpl();

}

publicclass ConcreteImplementA extends Implement {

    @Override

    publicvoid operationImpl() {

       System.out.println("第一种实现方式");

    }

}

publicclass ConcreteImplementB extends Implement {

    @Override

    publicvoid operationImpl() {

       System.out.println("第二种实现方式");

    }

}

publicstaticvoid main(String[] args) {

       Abstract abs=new RefinedAbstraction();

       abs.SetImplement(new ConcreteImplementA());

       abs.operation();

      

       abs.SetImplement(new ConcreteImplementB());

       abs.operation();

    }

好处:可以随意增加实现方式和Abstractd的子类,任意组装功能。

      继承是扩展对象功能的一种常见手段,继承扩展功能是一维的,也就是变化的因素只有一种。如果出现变化因素有两种,继承是没有办法实现的。这时使用桥接可以很好的解决问题。桥接连接的是抽象部分和实现部分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值