GOF23之桥接模式

一、核心作用:

处理多层继承结构,处理多维度变化的场景,将各维度设计为独立的继承结构,使每个维度可以独立扩展

二、常见应用场景:

1、JDBC驱动
2、AWT中的Peer架构

未采用桥接模式可能会出现多重继承,复用性差,类的数量也过多

在这里插入图片描述

三、代码示例:

品牌类:
package com.hezeu.bridge;

/**
* @Classname Brand
* @Description TODO
* @Date 2020/2/23 上午 12:42
* @Created by 朱进博 1724282894@qq.com
*/
public interface Brand {
        void sale();
}

class Lenovo implements Brand{

        @Override
        public void sale() {
                System.out.println("销售联想电脑");
        }
}
电脑类型类:
package com.hezeu.bridge;

/**
* @Classname Computer02
* @Description TODO
* @Date 2020/2/23 上午 01:13
* @Created by 朱进博 1724282894@qq.com
*/
public class Computer02 {
        protected Brand brand;

        public Computer02(Brand brand) {
                this.brand = brand;
        }

        public void sale(){
                brand.sale();
        }
}

class Desktop2 extends Computer02{

        public Desktop2(Brand brand) {
                super(brand);
        }

        @Override
        public void sale() {
                super.sale();
                System.out.println("销售台式机");
        }
}

测试类:
package com.hezeu.bridge;

/**
* @Classname Client02
* @Description TODO
* @Date 2020/2/23 上午 01:17
* @Created by 朱进博 1724282894@qq.com
*/
public class Client02 {
        public static void main(String[] args) {
                Computer02 c = new Desktop2(new Lenovo());
                c.sale();
        }
}

四、桥接模式优缺点:

优点:
  • 桥接模式可以取代多层继承方案,多层继承违背了单一职责原则,复用性较差,类的个数过多,桥接模式可以减少子类个数,降低管理和维护成本
  • 提高了系统可扩展性,可以任意扩展,不需要修改原来的系统,符合开闭原则
  • 分离抽象接口及其实现部分
缺点:
  • 桥接模式的引用会增加系统的理解与设计难度,由于聚合关联关系建立在抽象层,要求开发者针对抽象进行设计和编程
  • 要求开发者正确识别出系统中两个独立的变化维度,因此使用范围有一定的局限性

感谢阅读,水平有限,如有错漏,还请不吝赐教

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值