【PPT】适配器模式 和 桥接模式

【PPT】适配器模式 和 桥接模式
目录
【PPT】适配器模式 和 桥接模式
一、PPT 截图
1.0、封面和目录
1.1、设计模式概述
1.2、结构型模式特点
1.3、适配器模式
1.4、桥接模式
二、参考资料及 PPT 获取方法
独立观察员 2022 年 11 月 15 日

为之前公司准备的分享PPT,后来没用上。关于设计模式中的适配器模式和桥接模式,主要参考资料是公众号 “十一学技术” 的相关文章(《设计模式的艺术》中相关篇章的 C# 版)以及《大话设计模式》等。现将全部PPT页面截图贴上,完整 PPT 获取方式见文末。

一、PPT 截图
1.0、封面和目录

1633caa7f3bffbec6ffb1082bca902db.png

1bc1f8a6a2ef061d3ae1e4dccfe21481.png

1.1、设计模式概述

9e6b80ae79d3ac680fd6850721172185.png

bbd0754210fd85f276f72f8ba80c9b8d.png

97dc658aa4d93e89776ae671b80ea3d7.png

aabb7252db4dd704c325eba61241397c.png

0d3e853fb1a98b1e7678acfe82701d28.png


摘抄自《大话设计模式》

1.2、结构型模式特点

607fb3728d4f4caae3cf2b01bec2c093.png

66b34c24af480cb17ee187f39b849134.png


[1]https://wenku.baidu.com/view/283ce0ca0a75f46527d3240c844769eae009a381.html
[2]https://blog.csdn.net/weixin_44777669/article/details/116561497/
[3]https://blog.csdn.net/xyzyhs/article/details/103164185/

1.3、适配器模式

e31c292606771edc8a8344875d376abd.png

2ea5419e1bc28f39f36b3f7253e30474.png

720d3b10ceb58ee04ebe8689ed196191.png

437b06a23a0a8e3a1d408ba2b39ba86b.png


●Target(目标抽象类):目标抽象类定义客户所需要的接口,可以是一个抽象类或接口,也可以是具体类。
●Adapter(适配器类):适配器可以调用另一个接口,作为一个转换器,对 Adaptee 和 Target 进行适配。适配器类是适配器模式的核心,在对象适配器模式中,它可以通过继承 Target 并关联一个 Adaptee 对象使二者产生联系。
●Adaptee(适配者类):适配者即被适配的角色,它定义了一个已经存在的接口,这个接口需要适配。适配者一般是一个具体类,包含了客户希望使用的业务方法,在某些情况下可能没有适配者类的源代码。

30ed637eb4efd522fcda2d803b2985af.png


IScoreOperation 接口充当抽象目标,QuickSort 和 BinarySearch 充当适配者,OperationAdapter 充当适配器

00c0fccad685a04a365ac6b8c0fb860d.png

10bdd061f5d301d83e42959f25fdd83e.png

1.4、桥接模式

68cc3688a22cfa8bebdaa35cfb2af6a3.png

cc16b442f7bf61b6243219f8a341f8c7.png


在蜡笔中,颜色和型号两个不同的变化维度耦合在一起,无论是对颜色进行扩展,还是对型号进行扩展,都会对另一种维度产生影响。但在毛笔中,颜色和型号进行了分离,增加新的颜色或型号对另一方都没有任何影响。如果使用软件工程中的术语,可以认为,在蜡笔中颜色和型号之间存在较强的耦合性,而毛笔很好的将二者解耦,使用起来非常灵活,扩展也更为方便。

75afbd4c021e8ed68f0f020544143572.png


由于采用了多层继承结构,导致系统中的类的个数急剧增加。在该设计方案中,具体层类的个数 = 所支持的图像文件格式数 X 所支持的操作系统数。上图中类的个数已经达到了 17 个。
系统扩展麻烦,由于每一个具体类既包含图像文件格式信息,又包含了操作系统信息,因此无论是增加新的图像文件格式还是增加新的操作系统,都需要增加大量的具体类。

d709911460cc47cb0e4726d611eec795.png


●Abstraction(抽象类):其中定义了一个 Implementor (实现类接口)类型的对象并可以维护该对象。抽象类与 Implementor 之间具有关联关系,它既可以包含抽象业务方法,也可以包含具体业务方法。
●RefinedAbstraction(扩充抽象类):扩充由 Abstraction 定义的接口,通常情况下它不再是抽象类而是具体类。扩充抽象类实现了在 Abstraction 中声明的抽象业务方法,在 RefinedAbstraction 中可以调用在 Implementor 中定义的业务方法。
●Implementor(实现类接口):定义实现类的接口,这个接口不一定要与 Abstraction 的接口完全一致,事实上这两个接口可以完全不同。一般而言,Implementor 接口仅提供基本操作,而 Abstraction 定义的接口可能会做更多、更复杂的操作。Implementor 接口对这些基本操作进行了声明,而具体实现交给其子类。通过关联关系,在 Abstraction 中不仅拥有自己的方法,还可以调用到 Implementor 中定义的方法,使用关联关系来代替继承。
●ConcreteImplementor(具体实现类):具体实现 Implementor 接口,在不同的 ConcreteImplementor 中提供基本操作的不同实现。在程序运行时,ConcreteImplementor 对象将替换其父类对象,提供给抽象类具体的业务操作方法。

da41a0128e1084f3b25894faf5b32d50.png

70057497418b553b2c67c13d6c3bb507.png


将操作系统和图像文件格式两个维度分离。对于图片而言,由于图片格式是其固有的维度,因此可以设计一个抽象的图片类,在该类中声明并部分实现图片的业务方法,而将各种格式的图片作为其子类。绘制方法是图片的另一个维度,由于它与图片之间存在一种 “设置” 的关系,因此可以提供一个抽象的绘制接口,而将具体的系统绘制类作为实现该接口的子类。在此,格式可以认为是图片的抽象部分,而绘制是图片的实现部分。

9fd9f1b0c87621690d3c209e2d104ae5.png

8271ead2464ca5d83da2e65ec3966ed8.png

a8b59e4b5e811542ec228a8405be5005.png


afe41d52036559c7bac8d6697577a0a9.png

二、参考资料及 PPT 获取方法
参考:
1、[一起学习设计模式 --07. 适配器模式]( https://mp.weixin.qq.com/s/L0XHVEvitMX-9B4YFY6phQ)
2、[一起学习设计模式 --08. 桥接模式]( https://mp.weixin.qq.com/s/muLEonPdTdvch89im_0OEA)
3、《大话设计模式》/ [读书笔记]( https://mp.weixin.qq.com/s/869acDHq_6Nx5C0TPXh9Ew)
4、互联网

PPT 获取方法:
关注微信公众号 “独立观察员博客”,回复 “PPT 适配器” 即可获取下载地址。

aa2971c98e8d9789c8eb585932cd51c0.png



原创文章,转载请注明:转载自独立观察员
本文链接地址:【PPT】适配器模式 和 桥接模式 [http://dlgcy.com/ppt-adapter-pattern-and-bridge-pattern/]


读书笔记

[读书笔记] 《修炼之道:.NET 开发要点精讲》

[读书笔记] 《大话设计模式》

作品

Windows 小工具之 Wifi 固定器

利用 C# 中的 FileSystemWatcher 制作一个文件夹监控小工具

使用 WPF 版简易 SIP 服务器向 GB28181 摄像头发送直播请求

下载中转加速器 VPSDownloader.NET(.NET Core 程序部署到 Linux 系统) 

『简易日志』NuGet 日志包 SimpleLogger

PDF 目录编辑器使用介绍

Winform

Winform 进度条弹窗和任务控制

Winform 通过 WebBrowser 与 JS 交互

WordPress

WordPress 网站使用 “微信机器人高级版” 插件连通微信公众号

WordPress 在侧边栏添加显示相关文章功能

自用 WordPress 插件推荐 Ⅱ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值