使用Factory从数据库中检索依赖项并构造复杂对象

时间:2013-07-29 23:34:06

标签: c# dependency-injection factory

我目前正在使用工厂从数据库中检索多个对象并返回一个复杂的对象。

我的问题是,这是工厂的有效用法吗?

我正在使用遗留数据库,该数据库没有任何选择。

以下是用于演示目的的代码示例:

public class ComplexItem : IComplexItem
{
    public ComplexItem(Item item, List<ItemPart> itemParts, List<ItemComment> itemComments)
    {
        //Setter
    }
}


public class ComplexItemFactory : IComplexItemFactory
{
    private ItemRepository itemRepository;
    private ItemPartsRepository itemPartsRepository;
    private ItemCommentsRepository itemCommentsRepository;

    public ComplexItemFactory(ItemRepository itemRepository, ItemPartsRepository itemPartsRepository, ItemCommentsRepository itemCommentsRepository)
    {       
        //Setter
    }

    public IComplexItem CreateComplexItem(ItemKey itemKey)
    {
        var item = itemRepository.Get(itemKey);
        var itemParts = itemPartsRepository.GetItemParts(itemKey);
        var itemCommentsRepository = itemCommentsRepository.GetItemComments(itemKey);

        return new ComplexItem(item, itemParts, itemCommentsRepository);
    }
}

1 个答案:

答案 0 :(得分:0)

回到这个问题,感觉有点傻。 是的,这家工厂没有任何问题。

今天ORM会为你解决这个问题...