Backbone.js工厂设计模式实现



我正在寻找有关这种工厂设计模式是否对骨干收藏的建议是不良的实现。

Collections.MyObjects = Backbone.Collection.extend({
    model: Models.MyObject
});
Collections.MyObjects.getInstance = (function(){
    var instances = {},
        defaultName = 'default';
    return function(name)
    {
        name = name || defaultName;
        if (!instances[name])
        {
            instances[name] = new Collections.MyObjects();
        }
        return instances[name];
    };
})();

我正在寻找替代实现和绩效优化/理论。

这是一个受 @numbers1311407对问题的评论启发的替代实现。

Collections.MyObjects = Backbone.Collection.extend({
    model: Models.MyObject
});
Collections.MyObjects.instance = (function(){
    var instances = {},
        defaultName = 'default';
    return {
        "get": function(name) {
            name = name || defaultName;
            if (!instances[name])
            {
                instances[name] = new Collections.MyObjects();
            }
            return instances[name];
        },
        "delete": function(name) {
            name = name || defaultName;
            if (!instances[name]) return false;
            delete instances[name];
            return true;
        }
    };
})();

未测试。

最新更新