【发布时间】:2011-09-07 17:51:13
【问题描述】:
我注意到在我们用于很多网页的自定义基类中,我们有一些静态方法。由于该类被用作网页的基类,因此将方法设为静态有什么好处?我什么都没想,只是想验证一下。
此外,在自定义基类中,我们有一些属性可以调用另一个类库中我们的管理器类中的其他静态方法,并返回 DataTable 或 HashTable。 我可以看到哪里是开发人员编写代码的便利因素,但除此之外,他们还有什么理由让方法在那里静态化?
所以现有的代码看起来像这样:
public class CustomBaseClass
protected Hashtable displayText
{
get{
if(_displayText == null)
displayText = MyManager.GetCustomersList(sCustID);
由于 GetCustomersList 是静态的,因此该方法中的每个方法也必须是静态的。一直到我们的数据访问层。以这种方式编码对我来说似乎很奇怪,但对你们所有人的想法感到好奇。
为我们的应用程序编写代码的老开发人员已经走了,他们到处使用它们。他们是否有任何负面因素或注意使用静态方法,尤其是在 asp.net 应用程序中?
如果我创建一个单例不是更有意义,那么我就不必将所有方法调用都直接调用到我们的 DAL 静态?哈哈
【问题讨论】:
-
在使用静态方法时考虑可能的线程问题,尤其是当您谈论的是 Web 应用程序时。
-
就像我启动一个新线程并在新线程中调用那些相同的静态方法一样?这可能是一个问题?还有其他要找的吗?