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

Posted 汪培

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript设计模式-抽象工厂模式相关的知识,希望对你有一定的参考价值。

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

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

例:定义抽象工厂方法:

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设计模式-抽象工厂模式的主要内容,如果未能解决你的问题,请参考以下文章

javascript-抽象工厂模式

javascript的设计模式之抽象工厂模式

《JavaScript设计模式 张》整理

JavaScript设计模式创建型设计模式--简单工厂工厂方法抽象工厂

javascript 抽象工厂创作设计模式

设计模式-简单工厂工厂方法模式抽象工厂模式详解