返回具体对象的替代方法

时间:2016-01-12 15:01:54

标签: c# .net

我有一个函数,它接受一个对象参数说实体并返回如下的具体对象。具体对象继承自IEntity。

        public IEntity GetEntity(object entity) 
        {
            if(entity is A) { .... return new Customer(); }
            else if(entity is B) {... return new Invoice(); }
            .......
        }

这显然有效,但我想知道这是否是最佳方法,还是从架构角度出发还有其他替代方案和推荐方法?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用泛型:

public IEntity GetEntity<T>(T entity)
    where T : IEntity, new()
{
    return new T();
}