源码地址:https://github.com/mumushuiding/golang-design-pattern/tree/master/02_Bridge
????桥梁模式-Bridge
????桥梁模式的目的就是要实现抽象定义和它的实现部分可以互不依赖,单独开发
✂️抽象定义和实现的部分相互分隔,各自只在自己的类的层次结构中.
⚡️类图
抽象定义和它的实现之间的关系称作 ????桥梁,它在二者之间建立连接
????参与者
桥梁模式的参与者如下:
???? Client (客户).
???? AbstractDef (抽象定义). 类 AbstractDef 定义了客户可以使用的 ????接口,含有指向由自己规定的接口的IImplementer的引用.
SpecAbstractDef (细分的抽象定义).这个类是AbstractDef的派生类,可以扩展基类的接口.
???? IImplementer (实施者).接口 IImplementer 定义了需要实现的接口.必须满足类AbstractDef中方法的需要.
⭐️ ConcreteImplementerA (具体实现A).接口IImplementer中定义的每一种情况都要被实现,这个任务由ConcreteImplementerA完成.
????评价
????优点
桥梁模式有下列优点:
????抽象定义(AbstractDef) 和具体实现 (ConcreteImplementerA)通过抽象定义规定的接口 (IImplementer)连接,使抽象定义可以不依赖于具体实现 (依赖倒置)
➕ 新的抽象定义和新的实现可以简单的加入系统中.
????具体实现对于客户是隐藏的,具体实现可以在运行时替换.
????缺点
????桥梁模式有的类参与转化,不利于结构的清晰.
有疑问加站长微信联系(非本文作者)