通过阅读优快云博客,记录自己的理解:
桥连接的是不同维度之间的抽象部分(抽象类)。
桥接模式中,用户通过接口继承或类继承的方式来对系统进行拓展。
桥接模式与适配器模式的联用
实现报表显示和数据采集的分离。重点是报表显示有多种方式,数据采集有多种方式,数据采集是从Excel中读取时,需要使用第三方的API,还要考虑到跨平台。
适用场景
在以下情况下可以考虑使用桥接模式:
(1)如果一个系统需要在抽象化和具体化之间增加更多的灵活性,避免在两个层次之间建立静态的继承关系,通过桥接模式可以使它们在抽象层建立一个关联关系。
(2)“抽象部分”和“实现部分”可以以继承的方式独立扩展而互不影响,在程序运行时可以动态将一个抽象化子类的对象和一个实现化子类的对象进行组合,即系统需要对抽象化角色和实现化角色进行动态耦合。
(3)一个类存在两个(或多个)独立变化的维度,且这两个(或多个)维度都需要独立进行扩展。
(4)对于那些不希望使用继承或因为多层继承导致系统类的个数急剧增加的系统,桥接模式尤为适用。
练习
Sunny软件公司欲开发一个数据转换工具,可以将数据库中的数据转换成多种文件格式,例如txt、xml、pdf等格式,同时该工具需要支持多种不同的数据库。试使用桥接模式对其进行设计。