首页 > 网站 > WEB开发 > 正文

javascript设计模式之工厂模式

2024-04-27 14:18:04
字体:
来源:转载
供稿:网友

javascript设计模式之工厂模式

/*  * 工厂模式 * 需要依赖具体环境创建不同实例 * 处理大量具有相同属性的小对象 *  * 比如汽车、不同类型的汽车 * source from: Javascript Patterns page 148 **/function CarMaker() {};// 通用方法CarMaker.PRototype.drive = function () {    return "Vroom, I have "+ this.doors + " doors.";};// 定义静态工厂方法CarMaker.factory = function (type) {    var constr = type,  // 个性化的汽车工厂        newcar = null;  // 生产出的car对象    // 如果构造函数不存在,则发生错误    if (typeof CarMaker[constr] !== "function") {        throw {            name: "Error",            message: constr + " does not 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.SUV = function () {    this.doors = 8;};// 应用var compactCar = CarMaker.factory("Compact"),    suvCar = CarMaker.factory("SUV");console.log(suvCar.drive());  // Vroom, I have 8 doors.


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表