度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 3379|回复: 9
打印 上一主题 下一主题

[分享] 面向对象编程思想-适配器模式

[复制链接]

235

主题

2547

帖子

5835

积分

论坛元老

Rank: 8Rank: 8

积分
5835
跳转到指定楼层
楼主
发表于 2020-5-13 15:29:38 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
一、引言
富兰克林揭秘了雷电的真实面目,那我们是否设想过将雷电储存下来呢?生活中如果买了国外的电器(美国、日本)使用电压为110V的,可国内通常电压是220V的,国外电器使用电压与国内电压不符,那怎么才能让它适用国内这个环境而正常使用呢?我们知道这时候需要用到电源适配器220V-110V,电器才能正常使用。电源适配器实现能使用220V电压方法,但实质调用的是使电器能使用110V电压这一行为。类比在程序设计中,也存在这样的思想,没错就是我们今天要学习的结构型设计模式之适配器模式
二、适配器模式
定义:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而无法一起工作的类可以一起工作。
适配器模式有类适配器模式和对象适配器模式
类适配器优点
1.在不修改原有代码的基础上复用现有类,很好的复合了“开闭原则”
2.可以重新定义被适配器类的部分行为,因为适配器类是被适配器类的子类
缺点:当适配器类匹配被适配器类及它的所有子类时,因为C#中类不能被多继承,所以用类的适配器模式是实现不了的。两个类耦合度较高。
对象适配器优点
1.相比类适配器模式的优点,对象适配器采用“对象组合”的方式,更加的“松耦合”lll
缺点:重定义被适配器类的行为较困难,这时就需要生成被适配器的子类,并引入被适配器的子类而不是被适配器类

使用场景:复用一些现有的类,但是接口又与现有环境不一致的情况,如.NET类库提供的适配器DataAdapter。
本文关于设计模式之适配器模式的学习就到这里了,结构型设计模式更加关注类或者对象组合成的结构及依赖关系。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
9#
发表于 2020-5-19 14:40:42 | 只看该作者
回复 支持 反对

使用道具 举报

235

主题

2547

帖子

5835

积分

论坛元老

Rank: 8Rank: 8

积分
5835
8#
 楼主| 发表于 2020-5-19 09:16:35 | 只看该作者
回复 支持 反对

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
7#
发表于 2020-5-16 14:15:49 | 只看该作者
回复 支持 反对

使用道具 举报

235

主题

2547

帖子

5835

积分

论坛元老

Rank: 8Rank: 8

积分
5835
6#
 楼主| 发表于 2020-5-15 14:47:25 | 只看该作者
回复 支持 反对

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
5#
发表于 2020-5-15 14:25:39 | 只看该作者
回复 支持 反对

使用道具 举报

235

主题

2547

帖子

5835

积分

论坛元老

Rank: 8Rank: 8

积分
5835
地板
 楼主| 发表于 2020-5-14 14:48:58 | 只看该作者
人呢?
回复 支持 反对

使用道具 举报

235

主题

2547

帖子

5835

积分

论坛元老

Rank: 8Rank: 8

积分
5835
板凳
 楼主| 发表于 2020-5-13 15:30:16 | 只看该作者
回复 支持 反对

使用道具 举报

235

主题

2547

帖子

5835

积分

论坛元老

Rank: 8Rank: 8

积分
5835
沙发
 楼主| 发表于 2020-5-13 15:29:56 | 只看该作者
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-11-24 08:52 , Processed in 0.144139 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表