我目前正在使用工厂从数据库中检索多个对象并返回一个复杂的对象。
我的问题是,这是工厂的有效用法吗?
我正在使用遗留数据库,该数据库没有任何选择。
以下是用于演示目的的代码示例:
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);
}
}
答案 0 :(得分:0)
回到这个问题,感觉有点傻。 是的,这家工厂没有任何问题。
今天ORM会为你解决这个问题...