我有一个辅助类,它接受一些对象,处理它并返回另一个类的一些实例,甚至返回对象的List。 什么是最好的方法:使这个辅助方法静态或非静态? 问题是我的应用程序可以创建大量的Car对象,并且我在考虑当每个对象都使用静态助手时是否会产生负面影响?
答案 0 :(得分:1)
大多数帮助程序或实用程序类都使用静态方法。如果要创建辅助类的多个实例,则应该只使用非静态方法,但是因为您只需要一个简单的输入 - >功能 - >输出,我会使方法静态。
答案 1 :(得分:1)
可能这可以解决,而无需在需要的地方决定辅助对象的生命周期。
您应该尝试利用依赖注入方法:
public class X
{
public X(IHelper helper)
{
Helper = helper;
}
private IHelper Helper { get; }
public void DoStuff()
{
var result = Helper.DoOtherStuff(input);
}
}
也就是说,X
不知道Helper是否始终是同一个实例,或者它是否是一个瞬态对象。这使代码更干净,更适合测试,因为您可以使用假IHelper
实现来模拟帮助程序,以确保您只是测试X
。
答案 2 :(得分:0)
使用带有静态方法的静态类,没有实例,没有派生,只有类中的静态方法。
public static class HelperClass
{
public static void HelperMethod()
{
// do something
}
}