c#中创建新类实例的最佳场所

本文关键字:最佳 实例 创建 新类 | 更新日期: 2023-09-27 18:11:29

这些代码的区别是什么
1 .

Public class class1()
{ ... }
Public class Main()
{
   public void method()
   {
      class1 k = new class1;     <---
      ...
   }
}

2。

Public class class1()
{ ... }
Public class Main()
{
   class1 k = new class1;      <---
   public void method()
   {
      k.use();
      ...
   }
}

哪里是更好的地方创建一个类的实例,在根的第二个类或在每个方法和函数需要class1?

c#中创建新类实例的最佳场所

我想说这很大程度上取决于你如何使用这个对象。

它是一个一次性资源,每次使用它时都必须实例化和处置(考虑到db连接)?在方法中实例化是最安全的方法。

如果容器对象在使用后要快速处理,并且您希望在多个方法中使用依赖关系,则可以在构造函数中实例化它,或者直接在字段中实例化它。

最好的方法是不要在代码中创建新的实例,而是使用依赖注入。最好使用一些接口或抽象类。这样你就不需要依赖于具体的实现,而且你的代码更容易测试,因为你可以控制什么是passedThroughConstructor。在为SomeOne类编写代码时,您不关心SomeTwo在哪里创建,您显示SomeOne依赖于它,没有它就无法创建。

public class SomeOne{
ISomeTwo _forInternalUse;
  public SomeOne(ISomeTwo passedThroughConstructor){
     _forInternalUse = passedThroughConstructor;
  }
  public void SomeOtherMethod(){
      _forInternalUse.DoStuff();
   }
}