Я использую контейнер IoC, который использует инжекцию конструктора (например, Castle Windsor). У меня есть следующий (пример) класс, который управляет продуктом ...
public class ProductDataManager
{
public ProductDataManager(Product product, IProductDataLoader productDataLoader)
{
}
// a number of methods here that manage the products data in different ways...
}
Он зависит от продукта, который известен только потребителю классов. Он также зависит от службы загрузки данных о продукте. Я определяю реализацию этого сервиса в контейнере IoC.
Как определить этот класс (ProductDataManager) в контейнере IoC (и / или классе потребления), чтобы зависимость службы (IProductDataLoader) могла быть внедрена контейнером IoC, а зависимость данных (Product) быть переданным классом потребления?
Или это запах кода? Если да, то как это можно изменить?