• 桥梁模式定义

    将抽象和实现解耦,使得二者可以独立变化

所谓耦合,就是两个实体的行为的某种强关联。而将它们的强关联去掉,就是耦合的解脱,或称脱耦。在这里,脱耦是指将抽象化和实现化之间的耦合解脱开,或者说是将它们之间的强关联改换成弱关联。
将两个角色之间的继承关系改为聚合关系,就是将它们之间的强关联改换成为弱关联。因此,桥梁模式中的所谓脱耦,就是指在一个软件系统的抽象化和实现化之间使用组合/聚合关系而不是继承关系,从而使两者可以相对独立地变化。这就是桥梁模式的用意。

  • 桥接模式角色
    1.Abstraction 抽象化角色
    主要职责是定义出该角色的行为,同事保存一个队实现话角色的引用,一般为抽象类
    2.Implementor实现化角色
    接口或者抽象类,定义必须的行为和属性
    3.RefinedAbstracction修正抽象画角色
    它引用是实现化角色对抽象化角色进行修正。
    4.ConcreteImplementor具体实现化角色
    他的实现接口或者抽象类定义的方法和属性

  • 代码实例

     public abstract class Abstraction {protected Implementor impl;public Abstraction(Implementor impl){this.impl = impl;}//示例方法public void operation(){impl.operationImpl();}
}
    public class RefinedAbstraction extends Abstraction {public RefinedAbstraction(Implementor impl) {super(impl);}//其他的操作方法public void otherOperation(){}
}
    public abstract class Implementor {/*** 示例方法,实现抽象部分需要的某些具体功能*/public abstract void operationImpl();
}
     public class ConcreteImplementorA extends Implementor {@Overridepublic void operationImpl() {//具体操作}}
     public class ConcreteImplementorB extends Implementor {@Overridepublic void operationImpl() {//具体操作}}

- 使用场景

  考虑这样一个实际的业务功能:发送提示消息。基本上所有带业务流程处理的系统都会有这样的功能,比如OA上有尚未处理完毕的文件,需要发送一条消息提示他。

  从业务上看,消息又分成普通消息、加急消息和特急消息多种,不同的消息类型,业务功能处理是不一样的,比如加急消息是在消息上添加加急,而特急消息除了添加特急外,还会做一条催促的记录,多久不完成会继续催促;从发送消息的手段上看,又有系统内短消息、手机短信息、邮件等。

转载于:https://www.cnblogs.com/boycelee/p/8683506.html

设计模式——桥梁模式相关推荐

  1. 说说设计模式~桥梁模式(Bridge)

    在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种"多维度的变化"?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外 ...

  2. Java设计模式—桥梁模式

    (尊重劳动成果,转载请注明出处:https://blog.csdn.net/qq_25827845/article/details/52490611冷血之心的博客) 目录 桥梁模式(桥接模式) 定义: ...

  3. 23种设计模式-桥梁模式《官渡之战》

    对于许久不用的东西,容易忘记.百度许久,也未能找到自己所要. 从今日起,有些东西就记载下来,不仅方便自己,希望能帮到他人吧! 定义: 结构型模式一种 .设计程序过程中 , 会经常使用到抽象类或者接口来 ...

  4. 设计模式 - 结构型设计模式 - 桥梁模式(Java)

    分享一个大牛的人工智能教程.零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net 理解桥梁模式,其实就是理解代码抽象和解耦. 我们首先 ...

  5. 设计模式 -- 桥梁模式

    前言 月是一轮明镜,晶莹剔透,代表着一张白纸(啥也不懂) 央是一片海洋,海乃百川,代表着一块海绵(吸纳万物) 泽是一柄利剑,千锤百炼,代表着千百锤炼(输入输出) 月央泽,学习的一种过程,从白纸-> ...

  6. java-23种设计模式-桥梁模式

    1 引子 下面是吕振宇大牛的一个例子,个人觉得挺好的,有助于理解Bridge模式的设计目的: 设想要绘制一幅图画,蓝天.白云.绿树.小鸟,如果画面尺寸很大,那么用蜡笔绘制就会遇到点麻烦.毕竟细细的蜡笔 ...

  7. Android中的设计模式-桥梁模式

    "假舆马者,非利足也,而致千里:假舟楫者,非能水也,而绝江河.君子生非异也,善假于物也."--荀子<劝学>. 美国好莱坞电影有<蜘蛛侠>.<蝙蝠侠&g ...

  8. java设计模式-桥梁模式

    桥梁模式 桥梁模式是对象的结构模式.又称为柄体(Handle and Body)模式或接口(Interface)模式.桥梁模式的用意是"将抽象化(Abstraction)与实现化(Imple ...

  9. [置顶]       设计模式之结构类模式——桥梁模式

    桥梁模式(Bridge Patter)也叫做桥接模式,是一个比较简单的模式. 定义: 将抽象和实现解耦,使得两者可以独立地变化. 通用类图: ● Abstraction--抽象化角色 它主要的职责是定 ...

最新文章

  1. html监听页面关闭事件,JS针对浏览器窗口关闭事件的监听方法集锦
  2. mysql存储树结构_mysql 树形结构查询(存储过程)
  3. 斯坦福iOS7公开课4-6笔记及演示Demo
  4. [Mac技巧]Mac下显示隐藏文件
  5. 【WSN同步捕获】无线传感器网络的同步捕获和跟踪误差的MATLAB仿真
  6. 各种树:trie树、B树、B-树、B+树、B*树
  7. JavaScript 专题之如何判断两个对象相等
  8. 在SAP云平台测试帐号中启用Kyma运行环境
  9. 【离散数学】实验 旅行路线规划问题
  10. 【JAVA】接口中的default和static方法
  11. OleDb与Access数据访问中日期时间参数类型错误和命名参数的用法
  12. 股票量化交易系统的指标和策略有哪些?
  13. 网站流量有什么作用?可以刷流量吗?
  14. 搜狗输入法的符号大全里面可以输入下标
  15. 云之讯手机号短信验证
  16. 由浅入深玩转华为WLAN—-4 DHCP Option 43配置方法
  17. 做PHP爬虫之QUERYLIST库(PHP爬虫插件)
  18. 数据挖掘之条件概率和朴素贝叶斯分类器
  19. 【小程序项目开发-- 京东商城】uni-app之商品列表页面 (上)
  20. 2.34 OrCAD中关于格点的操作是在哪里设置的?

热门文章

  1. C#中的信号量---Semaphore
  2. 学生系统优化(一)- - 字符限定
  3. 耗时 3 天,上亿数据如何做到秒级查询?
  4. 我为什么选择在北上广深打拼?
  5. Istio,灰度发布从未如此轻松!!!
  6. 996和被辞退,二选一
  7. 涨姿势 | 服务重启后,为什么发生抖动?
  8. 10张Gif动图让你弄懂递归等概念
  9. JVM:-Xmx和-Xms应该维持什么样的比例?
  10. 【Python】青少年蓝桥杯_每日一题_12.19_输出三位数