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

javascript设计模式-抽象工厂模式

时间:2017-05-26 00:50:40      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:创建型   属性   自定义   price   tor   定义   return   func   设计模式   

抽象工厂模式,是创建型模式的一种,其实是一个实现子类继承父类的方法,在这个方法中,通过传递子类以及要继承父类的名称,并且在抽象工厂方法中增加了对抽象类存在性的判断,如果存在,则将子类继承父类的方法。然后子类通过寄生式继承。

抽象工厂是用来创建子类的,本身可以视为一个类簇,它制定了子类的结构,让子类继承抽象工厂的方法及属性,因此抽象工厂模式可以创建多类对象。

例:定义抽象工厂方法:

var VehicleFactory = function (subFun, subClass) {

    if (typeof VehicleFactory[subClass] === ‘function‘) {

        function F() {}
        F.prototype = new VehicleFactory[subClass]()
        subFun.constructor = subFun
        subFun.prototype = new F()
        console.log(subFun.prototype)
    } else {
        throw new Error(‘未创建的类对象‘)
    }
}
// 小车抽象类
VehicleFactory.Cars = function () {
    this.type = ‘car‘
}
VehicleFactory.Cars.prototype = {
    getPrice: function () {
        return new Error(‘抽象方法不能调用,请自定义子类方法‘)
    }
}

用抽象工厂来生成子类:

var Jili = function (price) {
    this.price = price;
}
VehicleFactory(Jili, ‘Cars‘);
Jili.prototype.getPrice = function () {
    return this.price;
}
var jili = new Jili(200000);
console.log(jili.getPrice());    // 200000

 

javascript设计模式-抽象工厂模式

标签:创建型   属性   自定义   price   tor   定义   return   func   设计模式   

原文地址:http://www.cnblogs.com/aiyunyun/p/6906320.html

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