• node.js的exprots工厂模式


    工厂类:

    /**
     * Created by zzq on 2015/5/15.
     */
    module.exports = function(){
        this.getProduct = function(){
            console.log('重写这个方法获得相应的产品对象!');
        }
    }

    产品A:

    /**
     * Created by zzq on 2015/5/15.
     */
    var product = require('./product');
    var util = require('util');
    
    var productA = function(){
        product.call(this);
        this.getProduct = function(){
            console.log('获得了产品A对象!');
        }
    }
    
    util.inherits(productA, product);
    
    module.exports = productA;

    产品B类与A写法相同。。。

    简单产品工厂:

    /**
     * Created by zzq on 2015/5/15.
     */
    var productA = require('./productA');
    var productB = require('./productB');
    
    var _instance = null;
    
    var productFactoryModule = function(){
        var productFactory = function(){
    
        }
    
        productFactory.prototype.selectProduct = function(type) {
            switch (type) {
                case 'productA':
                {
                    return new productA();
                };break;
                case 'productB':
                {
                    return new productB();
                };break;
            }
        }
    
        this.initProduct = function (type) {
            if(_instance === null){
                _instance = new productFactory();
            }
            return _instance.selectProduct(type);
        }
    }
    
    //控制Single
    module.exports = productFactoryModule;

    mainApp:

    /**
     * Created by zzq on 2015/5/15.
     */
    
    var productFactory = require('./productFactory');
    var productA = new productFactory();
    productA.initProduct('productA').getProduct();
  • 相关阅读:
    项目管理工程师和项目经理的差异
    技术洞察是技术战略成功的关键
    openpyxl使用总结
    Node.js基础入门第六天
    Node.js基础入门第五天
    正则表达式
    GitTagging
    Svelte3聊天室|svelte+svelteKit仿微信聊天实例|svelte.js开发App
    内存加压 | mempressure
    Android 新特性
  • 原文地址:https://www.cnblogs.com/zzq-include/p/4506198.html
Copyright © 2020-2023  润新知