我目前正在使用工厂从数据库中检索多个对象并返回一个复杂对象。
我的问题是,这对工厂来说是否有效?
我正在使用一个没有花哨选项的遗留数据库。
下面是一个用于演示目的的代码示例:
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);
}
}