​适配器有效显示模式(适配器模式)

适配器有效显示模式(适配器模式)

适配器在生活中无处不在,比如电脑的转接头、读卡器、电源转接头他们的共同点就是接口标准不一样,需要通过适配器转换后才能使用就拿读卡器来说,存储卡的接口只能适配相机或者手机的卡槽而电脑普遍为 USB 接口那么如何在电脑上使用存储卡呢?我们可以用读卡器,一头卡槽能够插入存储卡,另一头 USB 可以插在电脑上通过适配器可以解决接口不兼容的问题还有个例子就是电脑的变压器,电脑一般接收20V电压,但是我国电压是220V,因此就需要变压器做转换,如下图所示,进来是220V,出来被转为20V变压器其实就是适配器,下面我们就来聊聊关于适配器有效显示模式?接下来我们就一起去了解一下吧!

适配器有效显示模式(适配器模式)

适配器有效显示模式

适配器在生活中无处不在,比如电脑的转接头、读卡器、电源转接头。他们的共同点就是接口标准不一样,需要通过适配器转换后才能使用。就拿读卡器来说,存储卡的接口只能适配相机或者手机的卡槽。而电脑普遍为 USB 接口。那么如何在电脑上使用存储卡呢?我们可以用读卡器,一头卡槽能够插入存储卡,另一头 USB 可以插在电脑上。通过适配器可以解决接口不兼容的问题。还有个例子就是电脑的变压器,电脑一般接收20V电压,但是我国电压是220V,因此就需要变压器做转换,如下图所示,进来是220V,出来被转为20V。变压器其实就是适配器。

1. 实现适配器模式

我们通过如下例子,来看看如何实现适配器模式。假如我们的电视机屏幕输出为 4K 画质,但播放器只能输出 2K 的画质,此时就需要一个适配器完成 2K 到 4K 的转换。代码如下:

只能输出 2k 信号的 player:

public class Player {    public TwoThousandSignal play() {        return new TwoThousandSignal();    } }

我们定义一个更为现代的播放器的接口,输出 4K 信号:

public interface ModernPlayer {    FourThousandSignal play(); }

这个接口的实现就是一个适配器( adapter ),通过复用 Player 输出的 2K 信号,转化为 4K 信号,让支持 ModernPlayer 的设备来播放 2K 信号源。

public class ModernPlayerAdapter implements ModernPlayer {    private Player player = new Player();    @Override    public FourThousandSignal play() {        TwoThousandSignal twoThousandSignal = player.play();        return convertToFourThousandSignal(twoThousandSignal);    }    private FourThousandSignal convertToFourThousandSignal(TwoThousandSignal twoThousandSignal) {        //4k信号通过算法计算,从2k转换而来。省略转换逻辑,        return new FourThousandSignal();    } }

电视机作为调用方,只需要使用 ModernPlayerAdapter 的实例就可以播放 2K 信号,代码如下:

public class Television {    private ModernPlayer modernPlayer = new ModernPlayerAdapter();    public void display(){        modernPlayer.play();    } }

看代码是不是很像代理模式?ModernPlayerAdapter 只是调用了Adaptee的方法,获得 2k 信号后转换为 4K 信号。区别在于 Player 并没有实现 ModernPlayer 接口。而代理模式,Proxy 和 RealSubject 是都需要实现同一个接口的。Adapter 的作用是适配不同接口,两个接口的返回值是不同的,Adapter 中需要实现转换逻辑。

类图:

2. 适配器模式优点不需要修改现有的接口和实现,就能复用已有的类;灵活度高,可以在接口不变的情况下,兼容多种不同的类。3. 适配器模式适用场景想要使用一个已有的类,但是此类的接口并不符合使用方要;多个类做的事情相同或者类似,但是各自接口又不同。调用方希望统一接口。

第一个场景可以认为是亡羊补牢。由于种种原因造成系统接口不同,但功能却类似。此时很可能我们不能直接修改已经存在的接口,我们只能通过适配器模式去适配这个接口。

第二个场景其实也很常见。比如我们开发一个比价网站,需要从不同网站抓取同类商品的价格,然后按照自己系统的数据结构保存。不同网站抓取到的数据肯定是不同的,可能字段名不一样,也可能数据结构都不同。但是最终都要保存为同样的数据结构,此时就需要适配器来做转换。

4. 小结

当我们面对难以改造,又想复用的对象时,可以考虑采用适配器模式。但切记一定不要滥用适配器。我们应该在最初设计程序的时候就考虑代码的可扩展性。而不是最后通过适配器来解决问题。能修改重构的,尽量去修改。实在不能修改的,比如外部系统的接口,我们就只能通过适配器模式来解决问题。

相关推荐

​适合春冬季穿的外套(冬天的外套别乱买)

​适合春冬季穿的外套(冬天的外套别乱买)

162

适合春冬季穿的外套(冬天的外套别乱买) 随着冬天悄然来临,选择一件百搭又实用的外套显得尤为重要。外套是冬天的必备单品,也是每个女生到了冬天就要开始制备的单品。 但是...

​四子王旗来历(四子王旗基本概括)

​四子王旗来历(四子王旗基本概括)

150

四子王旗来历(四子王旗基本概括) 四子王旗基本概括 四子王旗地处祖国北疆,位于内蒙古自治区中部,乌兰察布市西北部,是自治区牧业十强旗县之一,总辖地面积2.55万平方公里,...

​感恩父母小故事(3篇感恩父母的小故事)

​感恩父母小故事(3篇感恩父母的小故事)

149

感恩父母小故事(3篇感恩父母的小故事) 一朵玫瑰花:有位绅士在花店门口停了车,他打算向花店订一束花,请他们送去给远在故乡的母亲绅士正要走进店门时,发现有个小女孩坐在...

​双人成行图文攻略(双人成行火出圈了)

​双人成行图文攻略(双人成行火出圈了)

53

双人成行图文攻略(双人成行火出圈了) 《双人成行》这款游戏相信很多小伙伴已经体验过了,除了它确定一定以及非常肯定的好玩之外,更多的是带给我们满满的感动和人生启发。...

​全国各区常住人口(24省常住人口数据)

​全国各区常住人口(24省常住人口数据)

184

全国各区常住人口(24省常住人口数据) 原标题:24省份常住人口数据出炉:这两个省份过亿 编者按: 数不尽的财经数据,说不完的经济话题。中新经纬重磅推出[数说]栏目,用数字感...

​内衣尺寸对照表(中英衣服鞋码内衣尺寸对比)

​内衣尺寸对照表(中英衣服鞋码内衣尺寸对比)

96

内衣尺寸对照表(中英衣服鞋码内衣尺寸对比) 今天的我你爱答不理 明天的我照样找你 初来英国的你,是不是发现腐国人民普遍身材肥胖,所以衣服的尺码和我们在国内时看到的也有...

​羊肉汤秘制配方(羊肉汤核心技术配方)

​羊肉汤秘制配方(羊肉汤核心技术配方)

145

羊肉汤秘制配方(羊肉汤核心技术配方) 特点:色泽乳白,肉糯滑爽,汤鲜味美.冬季佳品,下面我们就来聊聊关于羊肉汤秘制配方?接下来我们就一起去了解一下吧! 羊肉汤秘制配方...

​各种莲花形状多肉(当圆润与莲花相遇)

​各种莲花形状多肉(当圆润与莲花相遇)

133

各种莲花形状多肉(当圆润与莲花相遇) 感谢作者【淡然超然】的原创独家授权分享 编辑整理:【多肉植物百科】百科君 坐标:河北省 承德市 多肉,近几年养玩的人愈来愈多,我猜...

​红豆薏米茶能隔夜,红豆薏米茶过夜能喝吗

​红豆薏米茶能隔夜,红豆薏米茶过夜能喝吗

112

红豆薏米茶能隔夜,红豆薏米茶过夜能喝吗 本文目录 1.红豆薏米茶过夜能喝吗2.红豆薏米隔夜能喝吗3.红豆薏米茶第二天可以再泡吗4.红豆薏米粥放在凉处隔夜能不能吃了 红豆薏米茶过夜...

​高危人群,心肌梗死的高危人群是哪些?

​高危人群,心肌梗死的高危人群是哪些?

128

高危人群,心肌梗死的高危人群是哪些? 心肌梗死的高危人群是哪些 心肌梗死是指冠状动脉急性、持续性缺血、缺氧所导致的心肌坏死,是猝死发生的主要原因。心梗高发于冠心病患...

​保温杯用多久需要换,想知道保温杯能用几年了

​保温杯用多久需要换,想知道保温杯能用几年了

94

保温杯用多久需要换,想知道保温杯能用几年了 本文目录 1.想知道保温杯能用几年了2.保温杯的使用寿命是多长时间3.保温杯多长时间换一次比较好4.不锈钢保温杯的使用寿命是多久 想知...

​办理护照的程序,护照办理都需要什么材料

​办理护照的程序,护照办理都需要什么材料

102

办理护照的程序,护照办理都需要什么材料 本文目录 1.护照办理都需要什么材料2.怎么办理护照3.办护照流程4.办护照流程 护照办理都需要什么材料 1、办理护照需要准备以下三样材料:...

​us什么意思,us什么意思

​us什么意思,us什么意思

62

us什么意思,us什么意思 本文目录 1.us什么意思2.xgbdhsjcmz是什么意思3.田雨和沈腾什么关系4.us什么意思 us什么意思 这是有一说一的意思。这其实是:实话实说,按道理讲。 【U1S1】 ——...

​自动回复怎么设置,华为自动回复怎么设置?

​自动回复怎么设置,华为自动回复怎么设置?

61

自动回复怎么设置,华为自动回复怎么设置? 华为自动回复怎么设置 华为手机设置自动回复短信的步骤: 1、在主界面点击“拨号”图标。 2、点击界面右下角的“菜单”图标。 3、点...

​中国方言,中国第一部方言?

​中国方言,中国第一部方言?

154

中国方言,中国第一部方言? 中国第一部方言 《輶轩使者绝代语释别国方言》(简称《方言》,扬雄著)是中国第一部记录方言的著作,全书共13卷。 秦朝以前,每年八月,政府派遣...