JAVA-设计模式:AKA桥接模式(结构型)

AKA策略模式中最后的鸭子例子也是桥接模式,及策略与桥接模式区别

https://blog.csdn.net/weixin_46524005/article/details/107684421

桥接的优点

1、将实现予以解耦,让它和界面之间不再永久绑定。

2、抽象和实现可以独立扩展,不会影响到对方。

3、对于”具体的抽象类“所做的改变,不会影响到客户

缺点:桥接模式的确定时增加了复杂度。

桥接的用途

1、适合使用在需要跨平台的图形和窗口系统上。

2、当需要用不同的方式改变接口和实现时,桥接模式很好用。

桥接模式包含如下角色:

    • Abstraction:抽象类

    • RefinedAbstraction:扩充抽象类

    • Implementor:实现类接口

    • ConcreteImplementor:具体实现类

 

 

例子:引用:https://www.cnblogs.com/SunSpring/p/12465036.html

如果有一个电视厂家,遥控器需要升级,电视也需要修改。这种变化部分的封装就适合使用桥接模式,桥接模式通过将实现和抽象放在两个不同的类层次中而使它们可以独立改变。

设计类图:

 

实现遥控器抽象类

public abstract class RemoteControl
    {
        public TV tv;
        public void SetTV(TV tv) {
            this.tv = tv;
        }

        public abstract void SetChannel();
    }

 

具体子类

public class ConcreteRemote : RemoteControl
    {
        public override void SetChannel()
        {
            this.tv.TuneChannel();
        }
    }

 

TV接口类

     public interface TV 
     {
         public void TuneChannel();
    }

 

特定TV实现

class PandaTV : TV
    {
        public void TuneChannel()
        {
            Console.WriteLine("熊猫电视调频道");
        }
    }


    class ChangHongTV:TV
    {
        public void TuneChannel()
        {
            Console.WriteLine("长虹电视调频道");
        }
    }

 

现在有了两个层次结构,其中一个是遥控器,另一个是平台特定电视机实现。有了桥接的存在,就可以独立的改变这两个层次。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值