gpt4 book ai didi

Java 错误做法做 : new. .. ().doSomething()?

转载 作者:搜寻专家 更新时间:2023-11-01 01:39:35 30 4
gpt4 key购买 nike

我刚刚看到一段代码,其中一些类只有一个方法。我选了一个例子:

public class TempDirCleanupProcess {
public void cleanup(final File directory) {}
}

然后,稍后在代码中按以下方式调用该方法:

new TempDirCleanupProcess().cleanup(tempDir);

现在我想知道这是否是一种不好的做法,因为我以前只在静态方法中看到过这种“行为”。对此有何看法?

最佳答案

当然,它可以重构为一个带有静态方法的类。它将避免每次需要调用该方法时都需要创建一个实例。在这种没有给出额外上下文的特殊情况下,静态方法将是更好的解决方案。

但是,不要忘记一个类可以保持一个状态,并且一个方法可以更改该状态并返回对当前对象的引用。

public class Builder {
// state

public Builder buildPart(T part) {
// update the state
return this;
}

}

它类似于构建器模式的变体并且有意义。

return new Builder();
return new Builder().buildPart(partA);
return new Builder().buildPart(partA).buildPart(partB);

我还可以想到一个极其糟糕的设计,其中 this 会从 cleanup 中泄漏出来,所以对那个 的引用new TempDirCleanupProcess() 行执行后不会丢失。

关于Java 错误做法做 : new. .. ().doSomething()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55725786/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com