gpt4 book ai didi

c# - 使类中的方法全部静态

转载 作者:可可西里 更新时间:2023-11-01 08:34:27 25 4
gpt4 key购买 nike

我的同事根据我的一个类(它是一个实例类)告诉我,如果你的类中没有字段(支持字段),只需将类中的所有方法设为静态或将类设为单例这样您就不必使用关键字 new 来调用此 BL 类中的方法。

我认为这是常见的好做法?基本面向对象?我只是想看看人们对此的看法。

我认为基本上他是在说因为没有状态,所以方法不需要是实例方法。

在这种情况下,我不确定是否每次都将其设为单例...这是他给我的某种模式或好的建议吗?

这是我正在谈论的类(请不要在此线程中重新发布任何此代码,这是私有(private)的):http://www.elbalazo.net/post/class.txt

最佳答案

调用 new 和构造类引用几乎没有什么缺点,尤其是在类没有状态的情况下。分配在 .NET 中很快,所以我不会单独使用它作为类静态的理由。

通常,我觉得如果一个类没有特定的上下文,则该类应该是静态的——如果您只是将该类用作“实用”方法或非上下文特定操作的占位符,那么一个静态类。

如果该类对上下文有特定需求,并且具有具体意义,那么即使它没有状态(尽管这种情况很少见),它也可能不能证明是静态的。有时,类的用途是由其引用本身定义的,它提供了某种“状态”(引用本身)而没有任何局部变量。

也就是说,静态类和单例之间有很大的区别。单例是一种不同的动物——当你需要一个实例时,你想使用它,但只有一个实例,要创建的类。单例中有状态,但您使用此模式来强制只有一个状态副本。这具有非常不同的含义,我强烈建议避免使用单例以防止需要“调用新的”。

关于c# - 使类中的方法全部静态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1493862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com