【发布时间】:2010-07-15 10:15:57
【问题描述】:
我对所有 DI 模式的想法是新手,我有一些基本的设计疑问。 我使用 Unity 应用程序块 2.0 作为我的 DI 框架。
问题:
- 假设我有一个名为 IDevice 的硬件设备接口。 以及一些接收此类 IDevice 的硬件侦听器。 现在假设您有多个实现 IDevice 和多个侦听器的硬件设备。 您需要为每个侦听器指定要注入的实际设备。 您不能只将单个设备映射到需要多个映射之类的接口。
一种可能的解决方案是为每个实际设备创建另一个抽象级别 喜欢
public interface IActualDevice : IDevice
{}
public ActualDevice : IActualDevice
{}
public SimulatedActualDevice : IActualDevice
{}
public OtherAcualDevice: IOtherAcualDevice
{}
那么就有可能创建这样的映射:
container.RegisterType<IActualDevice, ActualDevice>()
或者如果硬件丢失:
container.RegisterType<IActualDevice, SimulatedActualDevice>()
所以你说这个设计好不好?
- DI 模式为我们提供了良好的对象创建机制。
glue 呢,对象之间的事件订阅呢?
你不认为它丢失了,或者我错过了一些支持它的 Unity 功能更好。
阿迪尔。
【问题讨论】:
标签: c# design-patterns dependency-injection unity-container