4
我要找的建議在此實現工廠設計模式的Backbone.js的集合是否是一個壞的實現。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];
};
})();
我正在尋找替代實現和性能優化/理論。
你可能想提供一種方法來刪除實例,否則'instances'對象將永遠指向生成的每個實例。 – numbers1311407
@ numbers1311407非常好的一點。在我的實現中,我實際上希望只使用默認名稱來知道,但是您的觀點對於實現肯定是有效的。你有什麼建議可以巧妙實施? –
如果你的代碼是一個模塊(requireJS等),有好多沒有必要私有化'instances'變量,你可以在上面用盡可能多的功能,你只想要工作。如果不是,你可以在同一個閉包中包裝(獲取和刪除實例)函數定義。 – numbers1311407