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?
我想说这很大程度上取决于你如何使用这个对象。
它是一个一次性资源,每次使用它时都必须实例化和处置(考虑到db连接)?在方法中实例化是最安全的方法。
如果容器对象在使用后要快速处理,并且您希望在多个方法中使用依赖关系,则可以在构造函数中实例化它,或者直接在字段中实例化它。
最好的方法是不要在代码中创建新的实例,而是使用依赖注入。最好使用一些接口或抽象类。这样你就不需要依赖于具体的实现,而且你的代码更容易测试,因为你可以控制什么是passedThroughConstructor
。在为SomeOne
类编写代码时,您不关心SomeTwo
在哪里创建,您显示SomeOne
依赖于它,没有它就无法创建。
public class SomeOne{
ISomeTwo _forInternalUse;
public SomeOne(ISomeTwo passedThroughConstructor){
_forInternalUse = passedThroughConstructor;
}
public void SomeOtherMethod(){
_forInternalUse.DoStuff();
}
}