`

javaScript工厂模式

    博客分类:
  • js
 
阅读更多

工厂模式定义一个用于创建对象的接口,

var PaperFloderCreatorFactory = function (user, paths, pathModel) {

};

 

将要创建不同的类可以看作模具,用以创建不同的实例类。

PaperFloderCreatorFactory.Creators = {
    'spec_html': paperHtmlCreator,
    'lib': paperLibCreator,
    'practices': paperPracticesCreator,
    'specs': paperPracticesCreator
};

 

工厂要根据客户的需求生产不同的实例类

PaperFloderCreatorFactory.create_file_creator = function (file, user, paths, pathModel) {
    var Model = PaperFloderCreatorFactory._forCreator(file);

    return new Model(user, paths, pathModel, file);
};

 

要生产的类模块,而这些实例经常都拥有相同的接口.

function PaperHtmlCreator(user, paths, pathModel, type){
    this.user       = user;
    this.paths      = paths;
    this.pathModel  = pathModel;
    this.type       = type;
}

PaperHtmlCreator.prototype.create_floder = function(){
    var self = this;
    return new Promise(function(resolve){
        if(! self.paths) resolve();
        FileOperate.copy_file_and_rename(self.paths,self.pathModel.get_paper_course_path(self.user,'practices'));
        resolve();
    })
};
function PaperLibCreator(user, paths, pathModel,type){
    this.user       = user;
    this.paths      = paths;
    this.pathModel  = pathModel;
    this.type       = type;
}

PaperLibCreator.prototype.create_floder = function () {
    var self = this;
    return new Promise(function (resolve) {
        if(! self.paths) resolve();
        FileOperate.copy_dir(self.paths, self.pathModel.get_paper_course_path(self.user, 'lib'), function () {
            resolve()
        })
    })
};

 

使用生产的实例类

floder_creator = PaperFloderCreatorFactory.create_file_creator(key, user, paths, pathModel);

 

工厂模式适用的模式

  1. 对象的构建十分复杂
  2. 需要根据不同的要创建不同的实例或者大量属性相同的属性的小对象

工厂有利于代码结构的清晰,也可以是模块职责的单一化。

 

分享到:
评论

相关推荐

    javascript工厂模式和构造函数模式创建对象方法解析.docx

    javascript工厂模式和构造函数模式创建对象方法解析.docx

    JavaScript 设计模式 azw3

    《JavaScript设计模式》是JavaScript设计模式的学习指南。全书分为14章。首先介绍了什么是模式、模式的结构、类别、模式的分类、如何编写模式等等;然后,集中介绍了很多流行的设计模式在JavaScript中的应用,包括...

    Javascript设计模式源码

    作者针对常见的开发任务,从YUI等实战代码中取材,提供了专家级的解决方案,不仅透彻剖析了JavaScript扣的面向对象编程,而且深入探讨了如何用JavaScript实现以前只在服务器端应用的设计模式,如何根据实际场景选择...

    JavaScript模式中文[pdf] 百度云

     工厂模式  迭代器模式  装饰者模式  策略模式  外观模式  代理模式  中介者模式  观察者模式  小结  第8章 DOM和浏览器模式  关注分离  DOM脚本  事件  长期运行脚本  远程脚本  配置JavaScript  ...

    JavaScript设计模式 (美)哈梅斯(Harmes,R), (美)迪亚斯(Diaz,D)著 源码+PDF

    第二部分则专注于各种具体的设计模式及其在JavaScript语言中的应用,主要介绍了工厂模式、桥接模式、组合模式、门面模式等几种常见的模式。为了让每一章中的示例都尽可能地贴近实际应用,书中同时列举了一些...

    javascript设计模式之工厂模式.docx

    javascript设计模式之工厂模式.docx

    javascript 设计模式与开发实践

    javascript 设计模式与开发实践 作者 曾探 本书字体清晰,学习起来舒服。和张容铭的javascript设计模式相比,个人觉得有以下不同之处: 1、需要对原型链和闭包有一定的基础 2、案例比较经典并且通熟易懂,讲解特别...

    javascript设计模式之工厂模式示例讲解.docx

    javascript设计模式之工厂模式示例讲解.docx

    javascript工厂模式和构造函数模式创建对象方法解析

    工厂模式是软件工程领域一种广为人知的设计模式,这种模式抽象了创建具体对象的过程(本书后面还将讨论其他设计模式及其在JavaScript 中的实现)。考虑到在ECMAScript 中无法创建类,开发人员就发明了一种函数,用...

    JavaScript面向对象实现简单工厂模式

    本文件使用JavaScript已面向对象方式封装类来演示简单工厂模式的实现代码。以实例介绍了简单功能模式的用途,简单分析了实现的要件。mhtl文件里有实例代码的全部内容和分析简述。

    javascript设计模式 – 工厂模式原理与应用实例分析

    主要介绍了javascript设计模式 – 工厂模式,结合实例形式分析了javascript工厂模式基本概念、原理、定义、应用场景及相关操作注意事项,需要的朋友可以参考下

    JavaScript设计模式之工厂方法模式介绍

    主要介绍了JavaScript设计模式之工厂方法模式介绍,本文讲解了简单工厂模式、多个工厂方法模式等内容,需要的朋友可以参考下

    深入理解JavaScript系列

    深入理解JavaScript系列(28):设计模式之工厂模式 深入理解JavaScript系列(29):设计模式之装饰者模式 深入理解JavaScript系列(30):设计模式之外观模式 深入理解JavaScript系列(31):设计模式之代理模式...

    《javascript设计模式》学习笔记五:Javascript面向对象程序设计工厂模式实例分析

    本文实例讲述了Javascript面向对象程序设计工厂模式。分享给大家供大家参考,具体如下: 工厂模式和单例模式(https://www.jb51.net/article/184230.htm)应该是设计模式中应用最多的模式了,工厂模式的定义:提供...

    JavaScript 设计模式

    设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。 使用设计模式的目的:为了代码... 设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。

    javascript的oop思想以及单例,工厂,观察者模式简例

    主要是对javascript的面向对象思想的一个理解,有简单的单例模式,工厂模式,观察者模式含代码。

    深入理解JavaScript系列(.chm)

    深入理解JavaScript系列(28):设计模式之工厂模式 深入理解JavaScript系列(29):设计模式之装饰者模式 深入理解JavaScript系列(30):设计模式之外观模式 深入理解JavaScript系列(31):设计模式之代理模式...

Global site tag (gtag.js) - Google Analytics