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

javaScript设计模式---(工厂模式学习)

时间:2017-09-16 22:07:38      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:工厂模式   类型   veh   学习   blog   func   let   添加   rip   

工厂模式(Factory)提供一个公用的接口来创建对象。

如有一个UI库,我们要创建某个UI组件的类型,不需要直接使用new 运算符或者通过另一个创建型构造函数创建这个组件,而是要求Factory对象创建一个新的组件。我们通知Factory需要什么样的对象(如按钮、面板),它会进行实例化,然后将它返回给我们。

function Car (name, color) {
    this.name = name;
    this.color = color;
}
function Trunk (name, color) {
    this.name = name;
    this.color = color;
}
function vehicleFactory () {
}
vehicleFactory.prototype.vehicleClass = Car; // 添加默认类型
vehicleFactory.prototype.createVehicle = function (name, color) {
    if (name === ‘car‘) {
        this.vehicleClass = Car;
    } else {
        this.vehicleClass = Trunk;
    }
    return new vehicleClass(name, color);
}
let factory = new vehicleFactory()
let car = factory.createVehicle(‘car‘, ‘red‘)
console.log(car instanceof Car) // true
let trunk = factory.createVehicle(‘trunk‘, ‘blank‘)
console.log(trunk instanceof Trunk) // true

 

javaScript设计模式---(工厂模式学习)

标签:工厂模式   类型   veh   学习   blog   func   let   添加   rip   

原文地址:http://www.cnblogs.com/running1/p/7532885.html

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