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; }
——生命自会找到蓬勃之路。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于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基础知识总结