我对全DI模式的概念还很陌生,有一些基本的设计疑问。
我正在使用Unity应用程序块2.0作为我的DI框架。
针对这些问题:
1. 假设我有一个名为IDevice的硬件设备接口,以及一些接收此IDevice的硬件监听器。 现在假设你有几个实现了IDevice接口的硬件设备和几个监听器。 你需要为每个监听器指定要注入的实际设备。 你不能只将单个设备映射到接口,你需要类似多重映射的东西。
嗯,可能的一个解决方案是为每个实际设备创建另一层抽象,例如
那么就有可能创建这样一种映射:
如果硬件丢失:
所以你觉得这个设计怎么样?
2. DI模式为我们提供了良好的对象创建机制。
那粘合剂呢?对象之间的事件订阅呢?
难道你不觉得它缺少了一些东西,或者说我错过了一些支持它的Unity功能吗?
针对这些问题:
1. 假设我有一个名为IDevice的硬件设备接口,以及一些接收此IDevice的硬件监听器。 现在假设你有几个实现了IDevice接口的硬件设备和几个监听器。 你需要为每个监听器指定要注入的实际设备。 你不能只将单个设备映射到接口,你需要类似多重映射的东西。
嗯,可能的一个解决方案是为每个实际设备创建另一层抽象,例如
public interface IActualDevice : IDevice { }
public class ActualDevice : IActualDevice { }
public class SimulatedActualDevice : IActualDevice { }
public class OtherAcualDevice : IOtherAcualDevice { }
那么就有可能创建这样一种映射:
container.RegisterType<IActualDevice, ActualDevice>()
如果硬件丢失:
container.RegisterType<IActualDevice, SimulatedActualDevice>()
所以你觉得这个设计怎么样?
2. DI模式为我们提供了良好的对象创建机制。
那粘合剂呢?对象之间的事件订阅呢?
难道你不觉得它缺少了一些东西,或者说我错过了一些支持它的Unity功能吗?