【问题标题】:Which design pattern to follow in creation of objects with Javascript?使用 Javascript 创建对象时应遵循哪种设计模式?
【发布时间】:2016-06-14 09:36:42
【问题描述】:

模块模式(或)原型模式

用例:我必须创建多个对象,但基类没有得到任何派生类,我可以使用带有通用全局函数的模块模式而不是原型。

例如:

代码 1:(模块模式)

var globals = {
   method1 : function(){
       console.log("global method"); 
   }
}
function closureModule(){
    obj = {};
    obj.commonMethod = globals.method1;
    function pvtMethod(){
        console.log("private");
    }
    obj.privateMethod = pvtMethod
    return obj;
}
var o1 = closureModule();
var o2 = closureModule();
.
.
.
.
var o100 = closureModule();

代码 2:(原型模式)

function base(key){
    this.KEY = key;
}

base.prototype.commonMethod = function(){
    console.log("common Method", this);
}

var o1 = new base("0");
var o2 = new base("1");
.
.
.
.
var o100 = new base("100");

【问题讨论】:

  • 您可以在工厂和构造函数+原型周围使用(显示)模块模式。模块化更适合代码组织,您在创建对象时使用的方法纯粹是基于意见的。
  • 请分享任何与揭示模块模式相关的链接,并附上一个例子。
  • 你肯定可以在favourite search engine 中输入这个词,不是吗?

标签: javascript design-patterns coding-style module-pattern prototype-pattern


【解决方案1】:

模块模式对于通过隐藏内部实现细节来强制正确封装最有用。

如果您只想让同一个“类”的多个实例共享一个公共函数,那么使用prototype 是正确的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 2021-07-28
    • 1970-01-01
    • 2014-04-23
    • 1970-01-01
    相关资源
    最近更新 更多