У меня есть следующая иерархия классов в проблеме, над которой я работаю.
DiscountEvent
DiscountGroup
ProductFamily
Product
, где каждый класс содержит коллекцию следующего (например, DiscountEvent содержит коллекцию DiscountGroups и т. Д.)
Этот вид довольно глубокой иерархии приводит ко многим цепным вызовам из высших модулей.Например, при чтении данных о продукте из базы данных в эту иерархию классов у меня есть цепочки вызовов и похожие AddProduct
методы.
class DiscountEvent{
Dictionary<int, DiscountGroup> DiscountGroups;
public void AddProduct(ProductInfo info){
DiscountGroups[info.groupId].AddProduct(info);
}
...
}
class DiscountGroup{
Dictionary<int, productFamily> productFamilies;
public void AddProduct(ProductInfo info){
productFamilies[info.familyId].AddProduct(info);
}
...
}
...
Подобные методы добавления полностью относятся к конечному классу.Можете ли вы придумать способ упростить этот вид иерархической структуры классов?