定義:適配器模式將某個類的接口轉換成客戶端指望的另外一個接口表示,主的目的是兼容性,讓本來因接口不匹配不能一塊兒工做的兩個類能夠協同工做。原有的兩個類因爲接口不一, 須要對其中一個類進行適配包裝, 以供與另外的類進行溝通匹配javascript
實現適配模式有兩種, 繼承和橋接, 後者本人更喜歡java
實現this
220v接口spa
//類適配器模式 var v220 = new Interface('v220', ['output220V']);
220v電源類prototype
let Voltage220 = function() { }; Voltage220.prototype.output220V = function() { let src = 220; console.log("我是" + src + "V"); return src; }
5v接口code
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);
實現blog
適配類繼承
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的侷限性問題.