假设您有一个Writer
类,可以将obj
写入fileName
。你愿意吗
new Writer(fileName, obj).Write();
或
Writer.Write(fileName, obj);
如果将Writer
划分为子方法,则不必将obj
传递给第一种情况下的每个新方法。第二种方法可能更快,并且不会实例化新对象。
答案 0 :(得分:2)
这基本上归结为Writer
是有状态的还是无国籍的。即,当您调用Write时,如果某个内部变量发生更改,那么理想情况下您需要创建Writer
的实例
如果Write方法完全是自包含的,那么将它作为Writer
类的静态方法完全有效。
但是,如果更好地定义了目标,即Write(FileStream file, Foo object)
,那么您可以选择创建扩展方法而不是整个静态Writer
类。
答案 1 :(得分:-1)
将事实视为:
这个问题可以帮助你更深入。
Why are static variables considered evil?
还要决定是否应该使其静止: