实体工厂标准对象

时间:2014-01-28 13:21:32

标签: entity-framework optimization factory-pattern

我找不到一个现有的问题,很抱歉,如果这是一个重新询问。

我正在为mmorpg设计一个实体工厂系统,我想优化标准对象(每个实例都相同的对象,例如potion)的内存使用,这样一个对象的大量只保留一个引用而不是所有相关数据。

我假设我只有一个引用工厂构造函数的组件,但这是我在这种系统中的第一次尝试,所以我想在将自己编码到一个洞之前确保。

1 个答案:

答案 0 :(得分:0)

这更像是设计问题,而不是实体框架问题。您应该尝试了解工厂模式的作用!互联网上有很多好的指南,比如http://msdn.microsoft.com/en-us/library/ee817667.aspx
当您知道模式的作用时,让您的工厂返回数据库中的标准对象或新的标准对象应该相当容易。

考虑一下:当你有药水工厂时,你会给它一些输入,根据那个输入,工厂会给你一种药水。这可能是您数据库中的药水(标准药水!),因此可以为您保存新记录。

例如

public IPotion GetPotion(PotionType potion, EFContext context)
{
    switch (potion)
    {
        case PotionType.Health:
            // return standard health potion from the context
        break;
        case PotionType.Custom:
            // return a new instance of some sort of customizable IPotion, added to the context
        break;
    }
}