Нов съм в идеята за изцяло DI модел и имам някои основни съмнения относно дизайна. използвам блокове на приложение Unity 2.0 като моя DI рамка.
На въпросите:
- Да кажем, че имам интерфейс за HW устройства, наречен IDevice. И някакъв HW слушател, който получава такова IDevice. Сега кажете, че имате няколко HW устройства, които имплементират IDevice и няколко слушателя. Трябва да посочите за всеки слушател кое действително устройство да се инжектира. Не можете просто да картографирате едно устройство към интерфейса, имате нужда от нещо като множествено картографиране.
едно възможно решение е да се създаде друго ниво на абстракция за всяко действително устройство като
public interface IActualDevice : IDevice
{}
public ActualDevice : IActualDevice
{}
public SimulatedActualDevice : IActualDevice
{}
public OtherAcualDevice: IOtherAcualDevice
{}
тогава би било възможно да се създаде такъв вид картографиране:
container.RegisterType<IActualDevice, ActualDevice>()
или ако HW липсва:
container.RegisterType<IActualDevice, SimulatedActualDevice>()
така че какво ще кажете дали този дизайн е добър?
- DI моделът ни дава добрия механизъм за създаване на обекти.
Какво ще кажете за лепилото, какво ще кажете за абонамента за събития между обекти?
не мислите ли, че липсва или по-добре липсва ми някаква функция на Unity, която го поддържа.
Адиел.