javaScript设计模式:工厂模式

工厂模式的目的是为了创建对象,对象创建重复操作比较频繁甚至需要批量创建;所创建的对象不确定具体类型,但所有对象一般具备公共特性又包含自身独有特性。

基于这样的模式需求,可以通过一个父类来创建包含所有公共特性的原型,然后通过子类创建具体的对象。

示例:

复制代码
//父类
function CarMaker(){}
//一个父类的方法(这里可以用一个父类属性专门来验证工厂字类原型是否已经继承父类)
CarMaker.prototype.drive = function(){
    return "Vroom, I have " + this.doors + " doors";
}
//静态工厂方法
CarMaker.factory = function(type){
    var constr = type,
        newcar;
    if(typeof CarMaker[constr] !== "function"){
        throw{
            name: "Error",
            message: constr + " doesn't exist"
        };
    }
    if(typeof CarMaker[constr].prototype.drive !== "function"){
        CarMaker[constr].prototype = new CarMaker();
    }
    newcar = new CarMaker[constr]();
    return newcar;
}
//特定的工厂生成线
CarMaker.Compact = function(){
    this.doors = 4;
}
CarMaker.Convertible = function(){
    this.doors = 2;
}
CarMaker.SUV = function(){
    this.doors = 24;
}
复制代码

 

posted @   他乡踏雪  阅读(49)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2018-12-24 html基础知识总结
点击右上角即可分享
微信分享提示