在Java中,给出以下类:
public class MyClass {
private final Dependency dependency;
public MyClass(Dependency dependency)
{
this.dependency = dependency;
}
public void doWork()
{
// validate dependency...
}
Run Code Online (Sandbox Code Playgroud)
doWork方法需要调用使用的方法dependency.
以下哪两种变体被认为是"最佳实践",为什么?
// Access dependency directly
void validateDependency()
{
this.dependency.something();
}
// access dependency as passed to the method
void validateDependency(Dependency dependency)
{
dependency.something();
}
Run Code Online (Sandbox Code Playgroud)
我发现自己偏爱后者,将依赖项直接传递给方法,因为它使得该方法更容易单独测试(虽然是边缘).
但是,我对这里的java约定/最佳实践很感兴趣.
Ano*_*non 11
存在一个类,因为您具有与该状态耦合的状态和操作.将该状态的一部分作为参数传递给类方法是没有充分理由的.
事实上,它会向我表明,这片国家不应该属于这个阶级.或者该方法不属于该类.
使用参数"以便更容易进行单元测试"是后者保持的一个很好的指示(该方法不应该在类中).
| 归档时间: |
|
| 查看次数: |
1168 次 |
| 最近记录: |