GOF23之桥接模式

一、核心作用:

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

二、常见应用场景:

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

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

在这里插入图片描述

三、代码示例:

品牌类:
package com.hezeu.bridge;

/**
* @Classname Brand
* @Description TODO
* @Date 2020/2/23 上午 12:42
* @Created by 朱进博 [email protected]
*/
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 朱进博 [email protected]
*/
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 朱进博 [email protected]
*/
public class Client02 {
        public static void main(String[] args) {
                Computer02 c = new Desktop2(new Lenovo());
                c.sale();
        }
}

四、桥接模式优缺点:

优点:

  • 桥接模式可以取代多层继承方案,多层继承违背了单一职责原则,复用性较差,类的个数过多,桥接模式可以减少子类个数,降低管理和维护成本
  • 提高了系统可扩展性,可以任意扩展,不需要修改原来的系统,符合开闭原则
  • 分离抽象接口及其实现部分

缺点:

  • 桥接模式的引用会增加系统的理解与设计难度,由于聚合关联关系建立在抽象层,要求开发者针对抽象进行设计和编程
  • 要求开发者正确识别出系统中两个独立的变化维度,因此使用范围有一定的局限性

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

发布了11 篇原创文章 · 获赞 13 · 访问量 1283

猜你喜欢

转载自blog.csdn.net/weixin_44789225/article/details/104456404