摘要:适配模式定义适配器模式将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。
适配模式
定义:适配器模式将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。原有的两个类由于接口不一, 需要对其中一个类进行适配包装, 以供与另外的类进行沟通匹配
实现适配模式有两种, 继承和桥接, 后者本人更喜欢
继承结构:
实现
220v接口
//类适配器模式 var v220 = new Interface("v220", ["output220V"]);
220v电源类
let Voltage220 = function() { }; Voltage220.prototype.output220V = function() { let src = 220; console.log("我是" + src + "V"); return src; }
5v接口
var v5 = new Interface("v5", ["output5V"]);
适配类
let VoltageAdapter = function () { Voltage220.call(this); } // 实现5v接口 VoltageAdapter.prototype.output5V = function() { let src = this.output220V(); console.log("适配器工作开始适配电压"); let dst = src / 44; console.log("适配完成后输出电压:" + dst); return dst; } extend(VoltageAdapter, Voltage220);
继承结构:
实现
适配类
let VoltageAdapter2 = function (voltage220) { this.mVoltage220 = voltage220; }; VoltageAdapter2.prototype.output5V = function () { let dst = 0; if (null != this.mVoltage220) { let src = this.mVoltage220.output220V(); console.log("对象适配器工作,开始适配电压"); dst = src / 44; console.log("适配完成后输出电压:" + dst); } return dst; }
对象适配器和类适配器其实算是同一种思想,只不过实现方式不同。
根据合成复用原则,组合大于继承, 第二种优于第一种,它解决了类适配器必须继承src的局限性问题.
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/107590.html
摘要:本文参考于设计模式课程设计模式之适配器模式设计模式是一套被反复使用的多数人知晓的经过分类编目的代码设计经验的总结。第一个设计模式是适配器模式。总的来说适配器就是的模式,与修饰模式直接无感使用不同,适配器模式使用对象变为。 本文参考于:设计模式课程设计模式之适配器模式 设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被...
摘要:适配器模式是指将一个接口转换成客户端希望的另外一个接口,该模式使得原本不兼容的类可以一起工作。适配器有种角色目标抽象角色定义客户所期待的使用接口。接口源角色需要被适配的接口。接口适配器角色把源接口转换成符合要求的目标接口的设备。 适配器模式 是指将一个接口转换成客户端希望的另外一个接口,该模式使得原本不兼容的类可以一起工作。举个例子:macbook pro有一个HDMI接口,一条HDM...
摘要:屏幕适配是一个很容易被忽略的问题,但对于精益求精的产品而言,是必不可少的。对于开发的求职者而言,也是一个必需要理解清楚的经典问题文啃先生壹移动端适配的是什么我们讨论的是网页适配多种尺寸屏幕,让网页效果看起来和设计师的设计稿一样。 屏幕适配是一个很容易被忽略的问题,但对于精益求精的产品而言,是必不可少的。对于Web开发的求职者而言,也是一个必需要理解清楚的经典问题 文 | 啃先生 Mar...
阅读 1126·2023-04-26 00:12
阅读 3254·2021-11-17 09:33
阅读 1064·2021-09-04 16:45
阅读 1188·2021-09-02 15:40
阅读 2150·2019-08-30 15:56
阅读 2955·2019-08-30 15:53
阅读 3550·2019-08-30 11:23
阅读 1932·2019-08-29 13:54