C# .net设计在使用单元测试时,这会影响GC中%的时间吗?
为了能够模拟对象和类,我们创建了两个构造函数。一个没有参数,一个接受依赖项的构造函数 例如:C# .net设计在使用单元测试时,这会影响GC中%的时间吗?,c#,unit-testing,garbage-collection,C#,Unit Testing,Garbage Collection,为了能够模拟对象和类,我们创建了两个构造函数。一个没有参数,一个接受依赖项的构造函数 例如: public class MyClass { private readonly ISomeOtherClass someOtherClass; public MyClass() { someOtherClass = new someOtherClass(); } public MyClass(ISomeOtherClass someOt
public class MyClass
{
private readonly ISomeOtherClass someOtherClass;
public MyClass()
{
someOtherClass = new someOtherClass();
}
public MyClass(ISomeOtherClass someOtherClass)
{
this.someOtherClass = someOtherClass;
}
public void MyMethod()
{
someOtherClass.DoThis(); //Could be long-running db-call
}
}
现在,在阅读和“防止推广短命物品”一章时
这种设计会不会成为一个问题,让对象在GC中停留的时间超过它们需要的时间?
如果是这样的话,有什么办法解决这个问题吗?如果每次使用MyClass时都创建一个新的MyClass实例,那么另一个类只在MyClass存在的时间内存在,这样就不会不必要地提升引用。如果您使用MyClass作为单例,那么您可能会升级这两个对象。。。但这通常是单身人士的预期行为。这种设计也有点过于模糊;例如,
someOtherClass
是否等同于JPAEntityManager
,或某种(单个)持久化实体。