Cześć, udało mi się w firmie przepchnąć refaktor 8 tysięcznikowych mikroserwisów. Chcemy je zrobić jako głębsze struktury i wydzielić kod do use casów.
Moje pytanie brzmi: jak bardzo jesteście za formalizmem w programowaniu?
No bo use case możemy zrobić po prostu jako klasę która nic nie implementuje i po prostu robi specyficzny przypadek, a możemy też dla każdego UseCase zdefiniować pewien kontrakt:
public interface UseCase<Q extends UseCase.Request, R extends UseCase.Response> {
R execute(final Q request);
interface Request { }
interface Response { }
}
Dzięki drugiemu podejściu wiem, że jakiś np CreateOrderRequest
jeśli implementuje UseCase.Request
to jest wejściem do UseCase
. Oczywiście Request
i Response
to zwyczajne znacznikowe interfejsy. Mogę też dzięki temu łatwiej potem dodać jakieś middle layery między use casami, a fasadami.