我继承了别人在工作中写的代码,发现有很多“新”实例化而没有实际分配给变量:
new MyCoolClass().MyCoolMethod();
我只是想知道是否有人有这方面的经验,如果这是反模式的。
答案 0 :(得分:9)
好吧,如果你这样经常调用它,那么该方法可能应该是static
方法,因为它似乎没有使用或者至少是相关的。如果您创建实例,则应使用它。
我会尝试编写这种代码。为了表现和理解。
答案 1 :(得分:5)
取决于MyCoolMethod()的功能。如果它返回void,那么将它赋给变量是没有意义的。我不了解其他人,但我经常使用它。这是一个好的做法是否值得辩论:)
编辑:我同意@Patrick Hofman。我的回答实际上是关闭的。我以为OP问为什么我们没有变量来存储MyCoolMethod()返回的内容。请参阅@ Patrick的回答:)
答案 2 :(得分:1)
如果构造函数或方法使用创建的实例,则没有任何问题。例如,构造函数或方法可以为字段赋值或调用其他实例方法,或者将实例传递给使用它的另一个方法。如果实例真的从未使用过,那么可以将其重构为静态方法,如其他答案所示。
关于赋值,如果在这个方法调用之后不需要再次使用它,为什么要将实例赋值给变量?我能想到的一个原因是,如果你给变量一个有用的名字,它可能会提高可读性(或者可能不会)。