最新要闻
- 央行:有效防范化解优质头部房企风险,改善资产负债状况
- 李国庆谈京东徐雷退休:早有预料 他跟刘强东有分歧
- 焦点!又一造车新势力开通法务部官号:零跑汽车晒出起诉通知书索赔50万
- 【环球新要闻】140元一个!五月天荧光棒官旗回应涨价:新款有云端互动功能
- 几乎腰斩!NVIDIA、AMD显卡中国大降价:老外羡慕不已
- 当前滚动:郝劭文晒婚礼现场照 释小龙任伴郎:勾起网友童年回忆
- 前乔治亚州球员赢得 2022 年 NFL 年度最佳防守新秀的几率-环球观点
- 2999元起 九号Segway储能电源公测招募:支持2200W大功率输出 当前资讯
- “轻功”真的存在:男子一次飞越10个凳子 还会蜻蜓点水 环球热文
- 《仙剑世界》将引入GPT:中手游宣布与微软达成合作
- 环球今亮点!《塞尔达传说:王国之泪》锯齿严重 最好用小屏幕玩
- 阿里达摩院自动驾驶实验室并入菜鸟:约70%员工被裁
- 苹果的Reality Pro耳机可能会遇到生产障碍_世界观天下
- 热点评!中国玩具批发市场哪里最便宜
- 环球热头条丨对盈利很重要!法拉第未来任命新财务高管:曾就职福特、蔚来
- 618主机、显示器、CPU便宜了 微星1元抢好礼:幸运玩家可免单
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
天天微速讯:Java设计模式-桥接模式
(资料图片)
简介
桥接模式(Bridge Pattern)是一种结构性设计模式,它的主要作用是将抽象部分和实现部分解耦,使它们可以独立变化而不会互相影响。桥接模式最早由GoF(Gang of Four)提出,在《设计模式》一书中有详细的介绍。
桥接模式和其他设计模式的区别在于它关注的是如何将抽象和实现分离,从而达到灵活性和可扩展性的目的。与之相比,适配器模式关注的是如何将不兼容的接口转换成可兼容的接口,装饰者模式关注的是如何动态地为对象添加行为,而组合模式则是将对象组合成树形结构,以表示“部分-整体”的层次结构。
实现
假设我们正在构建一个图形用户界面(GUI)框架,我们需要支持多个操作系统和窗口管理器。我们可以使用桥接模式来实现这个功能。我们可以将操作系统和窗口管理器的实现分开,以便它们可以独立地变化。我们可以定义一个抽象的Window类,它有一个实现了WindowImpl接口的实例变量。WindowImpl接口表示窗口管理器的实现。我们可以定义一个操作系统的抽象类,它有一个实现了OsImpl接口的实例变量。OsImpl接口表示操作系统的实现。
下面是一个示例代码:
interface WindowImpl { void draw(int x, int y, int width, int height, String color);}class LinuxWindowImpl implements WindowImpl { public void draw(int x, int y, int width, int height, String color) { System.out.println("Drawing a Linux window at (" + x + ", " + y + ") with width " + width + ", height " + height + ", and color " + color); }}class WindowsWindowImpl implements WindowImpl { public void draw(int x, int y, int width, int height, String color) { System.out.println("Drawing a Windows window at (" + x + ", " + y + ") with width " + width + ", height " + height + ", and color " + color); }}abstract class Window { private WindowImpl impl; public Window(WindowImpl impl) { this.impl = impl; } public void draw(int x, int y, int width, int height, String color) { impl.draw(x, y, width, height, color); }}abstract class Os { private WindowImpl impl; public Os(WindowImpl impl) { this.impl = impl; } public void drawWindow(int x, int y, int width, int height, String color) { Window window = createWindow(impl); window.draw(x, y, width, height, color); }protected abstract Window createWindow(WindowImpl impl);}class LinuxOs extends Os {public LinuxOs(WindowImpl impl) {super(impl);} protected Window createWindow(WindowImpl impl) { return new LinuxWindow(impl);}}class WindowsOs extends Os {public WindowsOs(WindowImpl impl) {super(impl);} protected Window createWindow(WindowImpl impl) { return new WindowsWindow(impl);}}class LinuxWindow extends Window {public LinuxWindow(WindowImpl impl) {super(impl);}}class WindowsWindow extends Window {public WindowsWindow(WindowImpl impl) {super(impl);}}
在这个例子中,WindowImpl接口表示窗口管理器的实现,LinuxWindowImpl和WindowsWindowImpl类分别是Linux和Windows操作系统的窗口管理器的实现。Window抽象类有一个实现了WindowImpl接口的实例变量,并且有一个draw方法,该方法将调用WindowImpl的draw方法。Os抽象类也有一个实现了WindowImpl接口的实例变量,并且有一个drawWindow方法,该方法将创建一个Window对象,并调用draw方法。LinuxOs和WindowsOs类分别是Linux和Windows操作系统的实现,它们都是Os抽象类的子类。它们实现了createWindow方法,并返回一个具体的Window对象。
优缺点
优点:
- 桥接模式可以将抽象部分和实现部分分离,使它们可以独立变化,从而达到灵活性和可扩展性的目的。
- 桥接模式可以让客户端代码仅关注抽象部分,而不必关注实现部分的细节
- 桥接模式可以减少继承的使用,因为继承是一种静态的方式,而桥接模式则是一种动态的方式。
缺点:
- 桥接模式需要增加额外的抽象和实现层次,从而增加系统的复杂度和理解难度。
- 桥接模式需要对系统进行重新设计,从而增加了开发的时间和成本。
运用场景:
桥接模式适用于以下情况:
- 当一个类存在两个独立变化的维度时,可以使用桥接模式来将它们解耦,从而使它们可以独立变化。
- 当一个类需要在运行时切换不同的实现时,可以使用桥接模式来实现这一需求。
- 当一个类的抽象和实现部分可以分别扩展时,可以使用桥接模式来实现这一需求。
总结
总的来说,桥接模式是一种结构性设计模式,它可以将抽象部分和实现部分解耦,从而使它们可以独立变化而不会互相影响。Java作为一门面向对象的编程语言,非常适合使用桥接模式来实现复杂的软件系统。
关键词:
天天微速讯:Java设计模式-桥接模式
全球快资讯丨Java并发(五)----线程常见方法总结
中银香港完成首批多笔北向互换通交易
前沿热点:货币市场日报:5月15日
央行:有效防范化解优质头部房企风险,改善资产负债状况
李国庆谈京东徐雷退休:早有预料 他跟刘强东有分歧
焦点!又一造车新势力开通法务部官号:零跑汽车晒出起诉通知书索赔50万
【环球新要闻】140元一个!五月天荧光棒官旗回应涨价:新款有云端互动功能
几乎腰斩!NVIDIA、AMD显卡中国大降价:老外羡慕不已
当前滚动:郝劭文晒婚礼现场照 释小龙任伴郎:勾起网友童年回忆
前乔治亚州球员赢得 2022 年 NFL 年度最佳防守新秀的几率-环球观点
2999元起 九号Segway储能电源公测招募:支持2200W大功率输出 当前资讯
“轻功”真的存在:男子一次飞越10个凳子 还会蜻蜓点水 环球热文
《仙剑世界》将引入GPT:中手游宣布与微软达成合作
环球今亮点!《塞尔达传说:王国之泪》锯齿严重 最好用小屏幕玩
阿里达摩院自动驾驶实验室并入菜鸟:约70%员工被裁
苹果的Reality Pro耳机可能会遇到生产障碍_世界观天下
快看:TransE模型(tensorflow框架)
【世界新要闻】记录--css水滴登录界面
原来如此!如何去开发一款直播软件app平台?直播源码技术直播互动篇 环球最新
升鲜宝_生鲜配送供应链系统_杭州生鲜配送系统之升鲜宝-车辆管理系统设计思路与功能展现(一) 每日热讯
热点评!中国玩具批发市场哪里最便宜
环球热头条丨对盈利很重要!法拉第未来任命新财务高管:曾就职福特、蔚来
618主机、显示器、CPU便宜了 微星1元抢好礼:幸运玩家可免单
任意地点、任意空间随处可控!华为全屋智能4.0带来业内首款空间穿越屏
苹果换打法了!iPhone 15/15 Plus影像没挤牙膏 天天新视野
安卓14带来全新Ultra HDR照片格式 细节惊人!骁龙同步首发
胃炎吃什么食物好-全球消息
作业二:读书笔记-简讯
Python工具箱系列(三十二)
Linux-LVM的介绍、创建、删除-世界微动态
世界头条:AI低代码,或将再次颠覆开发行业
axios CancelToken 实现对特定请求的拦截,不要所有请求都进行相同的拦截
环球观察:【新华财经调查】碳酸锂拍卖“试探”市场预期 价格何时回归理性?
今热点:【金融街发布】外汇局:4月银行结汇1869亿美元 售汇1815亿美元
万达信息:公司DIP项目不涉及数字人民币支付
焦点速看:男子和路过小朋友对暗号唱挖呀挖:没想到小朋友齐声对唱
世界热头条丨男子10万块买8套房 鹤壁房子1000元一套?官方回应
焦点要闻:全自动空中列车!数万名人已乘坐比亚迪大王山云巴
《王者荣耀》女装定价超千元 网友:不如去抢-环球今头条
世界播报:18片双环扇叶:先锋电风扇69元起官方大促抄底(170元券)
古润金被警方拘留 古润金_全球快播
【jmeter】win10部署jmeter分布式 全球最资讯
最新快讯!针对基于智能卡进行认证的活动目录攻击
Lua 备忘清单_开发速查表分享
vue 基于原生动画的自动滚动表格
【BSP视频教程】BSP视频教程第26期:CAN/CANFD/CANopen专题,CANFD整个运行机制精讲,图文并茂,配合综合实战演练(2023-05-15)
全球新消息丨上交所将召开沪市金融业专题座谈会 讨论促进金融业估值提升
【世界时快讯】收评:沪指午后逆转涨1.17%收复3300点 新能源赛道股大涨
尚纬股份: 截至3月31日,公司股东总数约为2.4万户-焦点热讯
威联通NAS新品TS-466C发布:影音转码升级 插上HDMI线就能看片
4年前的GTX 1650荣光犹在!Steam硬件占有率第一
安卓亲儿子又翻车 谷歌Pixel 6系列手机耗电bug:续航崩了
RTX 3060 Ti即将停产:疯狂杀价700元!赔本清库存|快看点
“永生”干细胞培养肉问世:有望实现人造肉无限量供应
长江上的“移动垃圾站” 环球聚焦
全球热点评!问鼎CodeXGLUE榜单,华为云UniXcoder-VESO-v1算法取得突破
天天热点评!湖北省智能科教研究会走进璞华,调研璞公英教学平台个性化教学新模式
环球观速讯丨光正眼科(002524.SZ):眼科板块前四个月预算完成率100%以上,年度经营目标有望实现
广告太多引众怒:微软被迫删除Win11天气部分推广 焦点快报
顾客买肉饼咬下去发现全是活虫:商家赔了10块钱_世界动态
Win10成绝唱!微软开始催更:给用户狂弹窗 快点升级Windows 11
全球今日报丨看齐Ultra!小米14 Pro曝光:长焦影像大升级
一盒尝鲜也包邮!春光一口鲜气0糖椰汁大促:券后每瓶9块9
Linux-RAID类型介绍、创建、彻底删除_天天快报
在ASP.NET Core中轻松使用JwtBeare进行身份验证
Golang基础教程
Mongodb 以及 node.js中使用mongoose操作数据库
每日看点!MYSQL数据库之事务隔离级别详解
损失条款
不喜欢别看!网飞黑人《埃及艳后》史诗级翻车 差评多到不忍直视
年度大改款!联发科下一代旗舰命名确认:天玑9300_焦点热门
骨灰级程序员 20多年经验IT大牛左耳朵耗子陈皓突发心梗去世 享年47岁-世界简讯
特斯拉中国召回110万辆:是真心 还是假意?
今热点:硬挑苹果!华为赚麻:增加万元折叠新机Mate X3订单 出货量或将翻倍
世界热文:白酒板块午盘走弱 贵州茅台股价下滑0.22%
接单日记(四)验证码图片生成|全球今头条
日系“药丸”?日产发布2022财年业绩:收益远超预期|热推荐
环球头条:卢伟冰揭秘Redmi Book 14:4000元档四大升级 厂商良心所在
地铁咋调头 有司机吗?看完本文你比地铁司机还懂
亚洲或将面临超级高温“烤”验:多国已破40℃ 厄尔尼诺现象要来了-环球热文
联想拯救者Y9000P冰魄白游戏本开卖 24核i9+RTX 4070仅售12499元 当前头条
俄媒:一天之内数架俄军机在俄乌边境坠毁 即时
Stimulsoft Report/Group Report报表类型简单实现|每日头条
系统错误:找不到mvcp120d.dll,无法继续执行代码
天天快播:ntp时钟服务器(ntp授时服务器)技术参数一览表
焦点短讯!宝兰德应用服务器软件与华为云GaussDB完成兼容互认证
顶象助力如祺出行打造高品质服务
全球快看:北向互换通正式上线
世界短讯!萍乡一男子利用职务便利侵占公司财物获刑
独悬变扭力梁、气囊也减配 新款丰田卡罗拉上市定档:价格或史低 当前热文
对标苹果iPad Air!华为MatePad Air真机首曝:LCD屏、骁龙888|世界新消息
全球今亮点!6月9日上映!《变形金刚7:超能勇士崛起》中文海报/角色介绍发布
110万的仰望U8领衔!多款硬派SUV申报:奇瑞这款最值得期待
超强辨识度!比亚迪腾势N7夜晚亮灯实拍:“世界级SUV”感受下 焦点热议
全球快资讯丨2023宁波技工学校新设置专业有哪些
每日热文:Grafana系列-统一展示-10-Explore Jaeger
环球微速讯:江南华南北部多降雨过程 华北黄淮等地将有高温过程
德意志银行顺利完成“互换通”下首笔交易
定档5月22日 Redmi Book 14官宣:重新定义4000元档轻薄本|天天热闻