Я использую библиотеку, которая имеет довольно много функций, которые записывают в ФАЙЛ
, но ни одна из них, кажется, удобно выгружает те же данные к объекту в памяти. Есть ли способ создать объект FILE
(или переопределить его), который сохраняет данные в памяти вместо записи на диск - I ' Чтобы добиться этого, я придумал концепцию репозитория и фабричного метода для создания объектов. Вот реализация:
//The Factory Method
function ObjectFactory() {}
ObjectFactory.create = function (o) {
var args = [].slice.call(arguments, 1);
function F() {}
F.prototype = o.prototype;
var instance = new F();
o.apply(instance, args);
return instance;
};
//The Repository
var Repository = {
'invitation': Invitation,
'message': Message
};
//Usage
var inv = ObjectFactory.create(Repository["invitation"], "invitation", "invitation body", "Sender");
var msg = ObjectFactory.create(Repository["message"], "message", "message body");
var inv2 = ObjectFactory.create(Repository["invitation"], "invitation2", "invitation body2", "Sender");
Этот шаблон работает для меня, но прежде чем я продолжу и внедряю этот код в свой проект, я хочу знать, есть ли какие-либо подводные камни (отказ шаблона для создания объектов, узкие места производительности - если я создам 5-10 объектов от 200 до 1000 строк кода) с использованием этого подхода. Я возвращаюсь к JavaScript после долгой работы над серверным кодом, поэтому не очень уверен в своем решении. Кроме того, я мог бы использовать ES5 Object.create, но заказчик пока застрял в браузерах IE8 и FF3.6.
Спасибо