敲碎时间的人的个人专栏
上一篇

js设计模式(桥接)

广告
选中文字可对指定文章内容进行评论啦,→和←可快速切换按钮,绿色背景文字可以点击查看评论额。
大纲

桥接模式

桥接是著名的高级架构模式。它通过提供不同的抽象级别。结果,组件对象松散耦合。每个成为组件的对象都将拥有自己的接口。

在我们生产星球大战玩具的玩具厂,有两种不同的品种。一套玩具可以使用遥控器进行操作。另一组玩具使用电池供电并产生不同的声音。桥接模式有助于构建这种高级架构。

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)桥接模式:分离抽象化和实现,使两者的接口可以不同,目的是分离

 所以说,如果你拿到两个已有模块,想让他们同时工作,那么你使用的适配器。 如果你还什么都没有,但是想分开实现,那么桥接是一个选择。一句话,适配器是为了兼容,而桥接是为了分离抽象和实现

版权声明:著作权归作者所有。

X

欢迎加群学习交流

联系我们