桥接模式定义为:将抽象部分与它的实现部分分离,使它们都可以独立的变化。

第一次看设计模式的时候,不是很清楚这句话的意思,随着笔者的不断开发,发现有一种场景,

继承关系多了,不易于维护父类,而笔者认为桥接模式的出现很好的解决了这个问题。用聚合解决继承的父类难维护性。先看下桥接模式设计图。

大话设计模式-类图

以上类图很简单易懂,先看下笔者的demo

/*** 操作接口*/
public interface IOperate {public void operate();
}

/*** 品牌父类*/
public class Brand {private IOperate operate;public Brand(IOperate operate) {super();this.operate = operate;}public void operate() {operate.operate();}public IOperate getOperate() {return operate;}public void setOperate(IOperate operate) {this.operate = operate;}
}

/*** 玩游戏*/
public class Game implements IOperate{@Overridepublic void operate() {System.out.println("玩游戏");}}

/*** 看通讯录*/
public class MailList implements IOperate {@Overridepublic void operate() {System.out.println("看通讯录");}}

/*** M品牌*/
public class MBrand extends Brand{public MBrand(IOperate operate) {super(operate);}}

/*** N品牌*/
public class NBrand extends Brand{public NBrand(IOperate operate) {super(operate);}}

/*** 客户端*/
public class Test {public static void main(String[] args) {IOperate game = new Game();IOperate mailList = new MailList();Brand nBrand = new NBrand(game);nBrand.operate();nBrand = new NBrand(mailList);nBrand.operate();Brand mBrand = new MBrand(game);mBrand.operate();mBrand = new MBrand(mailList);mBrand.operate();}
}

运行结果如下

玩游戏
看通讯录
玩游戏
看通讯录

比较好理解,不过笔者认为我们在实际开发中,可能很多地方会用到桥接模式,只是大家都忘记这个模式,而用继承去实现。

还是那句老话,理解其核心思想,拒绝生搬硬套。希望能帮助学习桥接模式的小伙伴。

转载于:https://www.cnblogs.com/zhuxiansheng/p/8059069.html

java 之 桥接模式(大话设计模式)相关推荐

  1. java 桥接模式_JAVA设计模式之【桥接模式】

    桥接模式 蜡笔中颜色和型号之间存在耦合 毛笔中,颜色和型号解耦了 如果软件系统中某个类存在两个独立变化的维度,桥接模式可以将两个维度分离出来 角色 抽象类 扩充抽象类 实现类接口 提供基本操作 抽象类 ...

  2. Java笔记-Java中桥接模式

    最近在研究一个APP,逆向后发现貌似用了桥接模式,特意学习了下Java中的桥接模式. 关于C++的桥接链接如下: https://blog.csdn.net/qq78442761/article/de ...

  3. 享元模式 -- 大话设计模式

    在今天,读书有时是件"麻烦"事.它需要你付出时间,付出精力,还要付出一份心境.--仅以<大话设计模式>来祭奠那逝去的-- 享元模式:运用共享技术有效地支持大量细粒度的对 ...

  4. 组合模式 桥接模式 java_java设计模式5.组合模式、门面模式、享元模式、桥接模式...

    组合模式 在面向对象的语言中,树结构有着巨大的威力,一个基于继承的类型的等级结构便是一个数结构,一个基于合成的对象结构也是一个数结构.组合模式将部分与整体的关系用树结构表示出来,使得客户端把一个个单独 ...

  5. java 之 单例模式(大话设计模式)

    笔者记得去面试时曾被问起这个模式,当时还没有看过设计模式,对设计模式基本上一无所知,不过可以肯定的是笔者用过单例模式.当时回答的风马牛不相及,很尴尬. 也是从那时起,开始学习设计模式.今天所说的就是单 ...

  6. java 之 观察者模式(大话设计模式)

    观察者模式,笔者以前做校验订单时用过一次,只是不知道有这个模式,当时使用观察者省略了N多if else 在笔者看来观察者模式比较试用于一个对象状态改变后,很多个对象也要根据这个状态做相应的动作,当然观 ...

  7. java 装饰器模式_Java设计模式(9)----------装饰器模式

    1.介绍 装饰器模式是一种结构型的设计模式.使用该模式的目的是为了较为灵活的对类进行扩展,而且不影响原来类的结构.有同学说可以通过继承的方式进行实现啊,没错,继承的确可以实现,但是继承的成本相对比较高 ...

  8. 抽象工厂模式 -- 大话设计模式

    在今天,读书有时是件"麻烦"事.它需要你付出时间,付出精力,还要付出一份心境.--仅以<大话设计模式>来祭奠那逝去的-- 待续-- 转载于:https://www.cn ...

  9. java的visitor模式_Java设计模式之Visitor模式是什么样的?

    作用于某个对象群中各个对象的操作.它可以使你在不改变这些对象本身的情况下,定义作用于这些对象的新操作.在Java中,Visitor模式实际上是分离了collection结构中的元素和对这些元素进行操作 ...

最新文章

  1. 仿京东首页上侧导航左侧地址栏布局(1)
  2. 请你解释一下HashMap具体如何实现的?
  3. DCMTK:OFUUID测试程序
  4. 页面监听,一段时间内不操作网页,就自动跳转到登录页
  5. 一点一点学ASP.NET之基础概念——HttpHandler
  6. 如何在Python中显式释放内存?
  7. 经济型EtherCAT运动控制器(四):ModbusRTU或ModbusTcp与触摸屏通讯
  8. 计算机知识竞赛策划案,计算机基础知识竞赛策划书.doc
  9. 构造图片对网络进行对抗攻击n+m=7
  10. 记一次iphone更换电池难以取下旧电池解决办法
  11. centos7 Zookeeper集群部署
  12. Win10系列:JavaScript综合实例1
  13. 关于环境依赖问题的反思NO.1
  14. 凸多边形最小面积包围矩形
  15. 设置SeekBar 滑动进度 样式
  16. 黑金高速AD-DA模块使用
  17. 湖南大学数据库实验一
  18. 我问 ChatGPT Java 编程语言的优缺点是什么?它这么回答……
  19. 精力管理2—劳逸结合的平衡
  20. 计算机语言栏无法设置,Win7电脑语言栏不见了怎么解决?

热门文章

  1. Mac技巧之查看苹果电脑 Mac OS X 系统是否开启 64 位运算,以及设置 32/64 位模式的方法
  2. exception in thread main java,【异常】idea执行Main方法出现 Exception in thread main java.lang.NoClassDefFo...
  3. recyclerview item点击无效_Android列表布局专题(一)RecyclerView
  4. spss process插件_SPSS教程:绘制调节效应图
  5. threejs加载模型挤压变形_车用水阀套零件冷挤压成形数值模拟试验研究
  6. 微信小程序云开发 mysql_微信小程序云开发学习笔记(一)云数据库
  7. oracle LPDA,oracle中自动增长列的设置
  8. ckeditor 图片上传_关于上传中国鸟类图库和哺乳动物图库物种数量及称号的最新规定...
  9. 最短路径(迪杰斯特拉算法)
  10. java面试题十三 string创建了几个对象