Wartość pusta jako parametr powrotu
Mam ten interfejs:
public interface Command<T> {
T execute(String... args);
}
działa dobrze dla większości zastosowań. Ale kiedy próbuję modelować polecenie, które ma tylko efekty uboczne (np. Bez wartości zwracanej), mam ochotę napisać:
public class SideEffectCommand implements Command<Void> {
@Override
public Void execute(String... args) {
return null; // null is fine?
}
}
Czy to powszechny problem? Czy istnieją najlepsze praktyki do modelowaniaCommands
zi bez wartości zwracanej?
Próbowałem z tym adapterem, ale myślę, że nie jest to optymalne z kilku powodów:
public abstract class VoidCommand implements Command<Void> {
@Override
public Void execute(String... args) {
execute2(args);
return null;
}
public abstract void execute2(String... args);
}