《设计模式》 - 6. 桥接模式( Bridge )

Javascript设计模式 - 原文链接 

Tips : 后文中的 ctor函数是cocos2d - JS 中构造函数 .

桥接模式 ( Bridge ) :

语言 : JavaScript

说明 :

以画笔为例 , 假设画笔有3种型号 (大 、中 、小) 和 3种颜色 (黑 、白 、红) . 正常情况下 每个型号和每种颜色组合(小黑 、中黑 、大黑 、 小白 、中白…)都需要一支 , 那就需要 3*3 = 9 支笔 . 当需求变化时 , 型号和颜色越来越多 , 新增笔的种类也是成倍增加的 , 这时候就需要想办法解决这个问题 .

解决办法 :

实际情况中 , 当需要小型笔 和 黑色时 , 只需要用小型笔沾上黑色墨水 , 就可以解决这个问题 , 在程序中也可以把 3种型号的笔 和 3种颜色区分开 , 需要时设置对应的颜色即可 .

颜色类 ( Color ) :

父类 (Color) 属性 value 用来存储颜色 , 方法getColor() 用来获取颜色, 三个子类都继承父类的属性和方法 .

var Color = cc.Class.extend({
    value : null,
    getColor: function(){
        return this.value;
    }
});

var Black = Color.extend({
    //ctor 是构造函数 
    ctor: function(){
        this.value = "Black";
    }
});

var White = Color.extend({
    ctor: function(){
        this.value = "White";
    }
});

var Red = Color.extend({
    ctor: function(){
        this.value = "Red";
    }
});

笔类 ( Pen ) :

var Pen = cc.Class.extend({
    color : null,
    size : null,
    setColor: function(color){
        this.color = color;
    },

    draw: function(){
        console.log(this.color + " Picture - By : "+ this.size);
    }

});

var Small_Pen = Pen.extend({
    ctor: function(){
        this.size = "Small-Size Pen";
    }
});

var Medium_Pen = Pen.extend({
    ctor: function(){
        this.size = "Medium-Size Pen";
    }
});

var Big_Pen = Pen.extend({
    ctor: function(){
        this.size = "Big-Size Pen";
    }
});

客户类 ( Client ) :


var pen = new Small_Pen();         //实例化小型笔
var color = new Black();           //实例化黑色
pen.setColor(color.getColor());    //给笔设置颜色
pen.draw();                        //Black Picture - By : Small-Size Pen

结果显示 :

这里写图片描述


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值