我的同事根据我的一个类(它是一个实例类)告诉我,如果您的类中没有字段(支持字段),只需将类中的所有方法设为静态或将类设为单例,以便您不必使用关键字 new 来调用此 BL 类中的方法。
我认为这是常见且良好的做法?基本的面向对象编程?我只是想看看人们对此的看法。
我认为基本上他是在说,因为没有状态,所以方法不需要是实例方法。
在这种情况下,我不确定是否每次都将其设置为单例......这是他给我的某种模式或好的建议吗?
这是我正在谈论的类(请不要在此线程中重新发布任何代码,这是私有的):http://www.elbalazo.net/post/class.txt
调用 new 并构造类引用几乎没有什么缺点,特别是在类没有状态的情况下。 .NET 中的分配速度很快,因此我不会单独使用这一点作为类静态的理由。
通常,我认为如果类没有特定的上下文,则应该将其设为静态 - 如果您将该类用作“实用程序”方法或非上下文特定操作的占位符,那么成为静态类是有意义的。
如果该类对上下文有特定的需求,并且有具体意义的含义,那么它可能不能证明是静态的,即使它没有状态(尽管这种情况很少见)。有时,类的用途是由其引用本身定义的,它提供某种“状态”(引用本身),而无需任何局部变量。
话虽这么说,静态类和单例之间有很大的区别。单例是一种不同的动物 - 当您需要创建类的一个实例(但只有一个实例)时,您需要使用它。单例中有状态,但您使用此模式来强制只有一个状态副本。这具有非常不同的含义,我强烈建议避免使用单例只是为了防止需要“调用 new”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)