执行以下操作的正确方法是什么,以便ParentClass不依赖于MyClass?
public class ParentClass { public void MyFunction(IList<Foo> foos) { foreach (var bar in foos) { var myClass = new MyClass(); myClass.DoStuff(); } } }
通常没有循环我只是用ParentClass构造函数注入它,但是在这里我需要为循环的每次迭代创建一个新实例.
或者也许有一种更好的方法来完成我想要实现的目标?也许myClass可以在每次迭代结束时重置自己,以便我可以重用它?
解决方法
您可以将创建MyClass实例的工厂对象注入ParentClass.
对于每个循环迭代,您调用工厂对象,以便为您提供MyClass的新实例.