Valor nulo como parámetro de retorno
Tengo esta interfaz:
public interface Command<T> {
T execute(String... args);
}
Funciona bien para la mayoría de los usos. Pero cuando intento modelar un comando que solo tiene efectos secundarios (por ejemplo, sin valor de retorno), estoy tentado a escribir:
public class SideEffectCommand implements Command<Void> {
@Override
public Void execute(String... args) {
return null; // null is fine?
}
}
¿Es este un problema común? ¿Hay mejores prácticas para modelarCommands
cony sin valor de retorno?
He intentado con este adaptador, pero creo que esto no es óptimo por varias razones:
public abstract class VoidCommand implements Command<Void> {
@Override
public Void execute(String... args) {
execute2(args);
return null;
}
public abstract void execute2(String... args);
}