
桥接模式
桥接是著名的高级架构模式。它通过提供不同的抽象级别。结果,组件对象松散耦合。每个成为组件的对象都将拥有自己的接口。
在我们生产星球大战玩具的玩具厂,有两种不同的品种。一套玩具可以使用遥控器进行操作。另一组玩具使用电池供电并产生不同的声音。桥接模式有助于构建这种高级架构。
var Remote_Control = function (output) {
this.output = output;
this.left = function () { this.output.left(); }
this.right = function () { this.output.right(); }
};
var Battery_Operation= function (output) {
this.output = output;
this.move = function () { this.output.move(); }
this.wheel = function () { this.output.zoom(); }
};
var Remote_Controlled_Toy = function () {
this.left = function () { console.log("Move Left"); }
this.right = function () { console.log("Move Right"); }
};
var Battery_Operated_Toy = function () {
this.move = function () { console.log("Sound waves"); }
this.wheel = function () { console.log("Sound volume up"); }
};
function run() {
var remote_control = new Remote_Controlled_Toy();
var battery_operation = new Battery_Operated_Toy();
var star_wars_type_1 = new Remote_Control(remote_control);
var star_wars_type_2 = new Battery_Operation(battery_operation);
star_wars_type_1.left();
star_wars_type_2.wheel();
}
有没有觉得桥接和适配器优点类似,那么它们有什么相似和不同呢?
总结:
1)适配器:改变已有的两个接口,让他们相容。
2)桥接模式:分离抽象化和实现,使两者的接口可以不同,目的是分离。
所以说,如果你拿到两个已有模块,想让他们同时工作,那么你使用的适配器。 如果你还什么都没有,但是想分开实现,那么桥接是一个选择。一句话,