Пустое значение в качестве возвращаемого параметра
У меня есть этот интерфейс:
public interface Command<T> {
T execute(String... args);
}
это прекрасно работает для большинства применений. Но когда я пытаюсь смоделировать команду, которая имеет только побочные эффекты (например, без возвращаемого значения), у меня возникает желание написать:
public class SideEffectCommand implements Command<Void> {
@Override
public Void execute(String... args) {
return null; // null is fine?
}
}
Это общая проблема? Есть ли лучшие практики для моделированияCommands
сand без возвращаемого значения?
Я пробовал использовать этот адаптер, но я думаю, что это не оптимально по нескольким причинам:
public abstract class VoidCommand implements Command<Void> {
@Override
public Void execute(String... args) {
execute2(args);
return null;
}
public abstract void execute2(String... args);
}