En Java, dada la siguiente clase:Java Estilo/Mejor Práctica - pasando campos de métodos vs accediendo directamente a
public class MyClass {
private final Dependency dependency;
public MyClass(Dependency dependency)
{
this.dependency = dependency;
}
public void doWork()
{
// validate dependency...
}
El método DoWork necesita invocar un método que utiliza dependency
.
¿Cuál de las siguientes dos variaciones se considera "mejor práctica", y por qué?
// Access dependency directly
void validateDependency()
{
this.dependency.something();
}
// access dependency as passed to the method
void validateDependency(Dependency dependency)
{
dependency.something();
}
me encuentro a favor de este último, pasando la dependencia directa con el método, ya que hace que el método más fácil para poner a prueba de forma aislada (aunque marginalmente).
Sin embargo, estoy interesado en la convención/práctica recomendada de java aquí.
ciertamente depende de la situación. –
exactamente! depende de la situación; por ejemplo, si tiene operaciones que están temporalmente acopladas (debe llamarse en un orden específico), entonces debe usar el último. De lo contrario, podría terminar con clientes/mantenedores de su código obteniendo NPE o un comportamiento más confuso. – lucas1000001
también, para llevarlo al extremo - Supongo que realmente está considerando estilos de programación funcionales versus orientados a objetos - oo siendo el primero y funcional el último. – lucas1000001