Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .net设计在使用单元测试时,这会影响GC中%的时间吗?_C#_Unit Testing_Garbage Collection - Fatal编程技术网

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
是否等同于JPA
EntityManager
,或某种(单个)持久化实体。