该类具有这样的依赖关系。
private readonly IDataReceiver<A> _receiverA;
private readonly IDataReceiver<B> _receiverB;
不同类型/不同数据库
我想将它们放在一个集合中,以便类构造函数具有更少的参数,但在这种情况下,发生了完全可怕的事情,并且通常不清楚类需要什么),如下所示:
private readonly Dictionary<Type, object> _receivers;
及用法:
var receiverA = new MockReceiver<A>();
var receiverB = new MockReceiver<B>();
var receivers = new Dictionary<Type, object>
{
{ typeof(A), receiverA },
{ typeof(B), receiverB }
};
我尝试了不同的方法,但一切仍然objeсt
有效,语法方法是什么?
有效的方法总是相对的。因为不同语言的识字能力是不同的。主题是霍利瓦尔。
构造函数中的许多参数表明您可能违反了 SPR(单一责任原则),并且您的“GOD 类”做了很多事情,但是有一些模式,我认为Facade模式适合您的示例。 。请替换,可能有违反原则的地方,也许Facade模式会合适。
当可以获取 IEnumerable<IDataReceiver> 作为输出并查看接收器集合时,还有其他可能性在容器中注册对象。但正如他们所说,这是一个品味问题