🎎桥梁模式的目的就是要实现 抽象定义 和它的 实现 部分可以互不 依赖,单独开发
✂️抽象定义和实现的部分相互 分隔,各自只在自己的类的层次结构中.
抽象定义和它的实现之间的 关系 称作 🌉桥梁,它在二者之间建立连接
桥梁模式的参与者如下:
- 👤 Client (客户).
- 🐘 AbstractDef (抽象定义). 类 AbstractDef 定义了客户可以使用的 🔌接口,含有指向由自己规定的接口的IImplementer的引用.
- SpecAbstractDef (细分的抽象定义).这个类是AbstractDef的派生类,可以扩展基类的接口.
- 🔌 IImplementer (实施者).接口 IImplementer 定义了需要实现的接口.必须满足类AbstractDef中方法的需要.
- ⭐ ConcreteImplementerA (具体实现A).接口IImplementer中定义的每一种情况都要被实现,这个任务由ConcreteImplementerA完成.
桥梁模式有下列优点:
- 🎎抽象定义(AbstractDef) 和具体实现 (ConcreteImplementerA)通过抽象定义规定的接口 (IImplementer)连接,使抽象定义可以 不依赖 于具体实现 (依赖倒置)
- ➕ 新的抽象定义和新的实现可以简单的 加入 系统中.
- 😷具体实现对于客户是 隐藏的,具体实现可以在运行时替换.
- 👓桥梁模式有的类参与转化,不利于结构的 清晰.