我已经和Java和C#合作了一段时间了,我已经多次问自己这个问题,但是我找不到我想要的答案.
当我必须调用一个对象方法(这意味着它不是静态的)时,我必须通过类的实例来调用,例如:
MyClass myInstance = new MyClass();
myInstance.nonStaticMethod();
Run Code Online (Sandbox Code Playgroud)
我到处都看到这种代码,所以我在考虑一线调用(下面的例子)是否表现出不同的性能,或者仅仅是标准的缘故?
这就是我用单线呼叫的意思:
new MyClass().nonStaticMethod();
Run Code Online (Sandbox Code Playgroud)
表现可能会是一样的.
但是,new MyClass().nonStaticMethod();通常会调用代码气味 - 这个对象封装了什么状态,你只需要在它上面调用一个方法?(即为什么这不是静态方法?)
编辑:我不打算说它总是坏的 - 在某些情况下,鼓励这样的习语(例如在流畅的构建器对象的情况下) - 但是你会注意到在这些情况下,结果对象在某些情况下仍然很重要办法.