У меня есть приложение, которое следует базовой методологии в рамках CSLA. В частности, объекты знают, как поддерживать свое состояние и как создавать, обновлять и удалять себя. Класс автомобиля демонстрирует эту идею.
public class Car
{
public int Color {get;set;}
public void Drive(){.. Do something Here}
private Car(){} // Only factory method can create this object
public static Car New()
{
Car car = new Car();
car.DataFetch();
return car;
}
private void DataFetch()
{
// Fill up this object with values from DB or where ever
this.Color = repo.valueForColor();
// ...
}
}
Приложение создает и уничтожает более 1 миллиона объектов, и большое количество созданных объектов влияет на производительность из-за продолжающейся сборки мусора. Также многие из этих объектов являются временными и используются для простой передачи данных в репозиторий.
Я читал о шаблоне легкого веса, который, похоже, может удовлетворить мои потребности. Я также читал о объединении объектов и связанном с ним код.
У меня проблемы с созданием миллиона объектов Car с использованием пула или извлечением данных для легковеса в сочетании с принципом Объект должен поддерживать свои собственные данные и доступ к данным.
Есть идеи, как этого добиться?