4

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];
    };

})();

代替の実装とパフォーマンスの最適化/理論を探しています。

4

1 に答える 1

1

質問に対する@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;
        }
    };

})();

未検証。

于 2012-11-13T10:32:43.910 に答える