Заголовок слегка расплывчатый так как не знаю как его сформулировать кратко.
Суть проблемы:
Допустим у нас есть объект - товар. Товар имеет базовые характеристики(имя, описание, путь к изображению и.т.д.). Товары могут быть разного типа, в моем случае это - простой, сложный и составной. У меня это реализовано наследованием т.е. есть базовый объект товар и от него наследуются другие типы товаров. Entity Fraimwork все товары поместил в одну таблицу и создал в ней дополнительное поле Discriminator в котором хранит название типа объекта.
Теперь самое интересное, у каждого типа товара рассчитывается стоимость по разному(для каждого типа своя логика), как мне реализовать логику , когда например я получаю все товары, и теперь в зависимости от их типа мне нужно рассчитать их стоимость?
Примеры объектов:
public class Product
{
public int ProductId { get; set; }
public string Name { get; set; }
}
public class SimpleProduct:Product
{
public new int GetShopPrice(City city)
{
//логика
}
}
public class ModuleProduct:Product
{
public new int GetShopPrice(City city)
{
//логика
}
}