我有一个遵循 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();
// ...
}
}
该应用程序创建和销毁超过 100 万个对象,并且由于正在进行的垃圾收集量,对象创建的数量正在影响性能。还有很多这些对象是完全暂时的,用于简单地将数据传递到存储库。
我已经阅读了似乎可能适合我需要的享元模式。而且我还阅读了有关对象池和相关代码的信息。
我遇到的问题是使用池创建一百万个 Car 对象,或者结合Object 的原则将 Flyweight 的数据外部化,应该维护它自己的数据和数据访问。
关于如何做到这一点的任何想法?