????桥梁模式-Bridge

mumushuiding · · 817 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

源码地址: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)连接,使抽象定义可以不依赖于具体实现 (依赖倒置)

➕ 新的抽象定义和新的实现可以简单的加入系统中.

????具体实现对于客户是隐藏的,具体实现可以在运行时替换.

????缺点

????桥梁模式有的类参与转化,不利于结构的清晰.


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:mumushuiding

查看原文:????桥梁模式-Bridge

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

817 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传