码迷,mamicode.com
首页 > 编程语言 > 详细

javascript模式——Decorator

时间:2015-03-11 12:15:15      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:

Decorator 模式是一种结构型模式,他意在促进代码的复用,是塑造子类的一个方式。

 

这种想法是基于,新增的属性,对于对象来说不是必须的基本功能。我们为特殊的对象添加自己的方法,而不是重新创建一个类。

用代码表示起来比较清晰,我们的汽车是一个基类,我们要创建轿车,卡车等各有特性的交通工具时,不是通过创建汽车子类或是卡车子类,而是向汽车实例或卡车实例的具体实例中添加新的属性方法。

function vehicle( vehicleType ){
    // 类共有的属性
    this.vehicleType = vehicleType || ‘car‘,
    this.model = ‘default‘,
    this.license = ‘00000-000‘
}

// 测试创建一个对象
var testInstance = new vehicle(‘car‘);
console.log(testInstance);


// turck对象
var truck = new vehicle(‘truck‘);

// 这里针对truck需要添加truck特有的方法,这就是装饰
truck.setModel = function( modelName ){
    this.model = modelName;
}
truck.setColor = function( color ){
    this.color = color;
}

// 测试特殊对象的特有方法是否可用
truck.setModel(‘CAT‘);
truck.setColor(‘blue‘);
console.log(truck);

// 基本类vehicle并没有改变
var secondInstance = new vehicle(‘car‘);
console.log(secondInstance);

 

javascript模式——Decorator

标签:

原文地址:http://www.cnblogs.com/winderby/p/4329182.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!