Czy ten sposób używania mediatr jest dobry

0

Witam, Uczę się właśnie architektury opartej na wzorcu mediator. Korzystam w tym wypadku z biblioteki MediatR. Chciałbym was się spytać, czy koncepcja polegająca na rozdzielaniu każdej operacji na oddzielny handler jest dobrym pomysłem. Poniżej wklejam screen pokazujący jaki jest mniej więcej poziom rozdzielenia.
Czy takie rozbijanie jest ok? Jeśli coś jest waszym zdaniem krytycznym błędem jaki stosuję?

Poniżej są przykłady implementacji kilku handlerów

RegisterUserHandler:

public class RegisterUserHandler : IRequestHandler<RegisterUserCommand, RegisterUserResponse>
    {
        private readonly UserService _userService;

        public RegisterUserHandler(UserService userService)
        {
            _userService = userService;
        }

        public Task<RegisterUserResponse> Handle(RegisterUserCommand request, CancellationToken cancellationToken)
        {
            bool registerSucceded = _userService.Register(request.createUserDTO, out Dictionary<string, string> registerErrors);
            return Task.FromResult(new RegisterUserResponse { RegisterErrors = registerErrors, RegisterSucceded = registerSucceded });
        }
    }

GetResidentialObjectTypesHandler:

public class GetResidentialObjectTypesHandler : IRequestHandler<GetResidentialObjectTypesCommand, List<string>>
    {
        public Task<List<string>> Handle(GetResidentialObjectTypesCommand request, CancellationToken cancellationToken)
        {
            if (request.Type == Commands.ResidentialObjectCommands.Type.MainTypes)
                return Task.FromResult(ResidentialObjectTypes.GetAllMainTypes());
            else if (request.Type == Commands.ResidentialObjectCommands.Type.Subtypes)
                return Task.FromResult(string.IsNullOrEmpty(request.MainTypeName) ? ResidentialObjectTypes.GetAllSubtypes() : ResidentialObjectTypes.GetSubtypesForType(request.MainTypeName));
            else
                return Task.FromResult(new List<string>());
        }
    }
0

Tak :)

0

W tym drugim przykładzie wygląda jakbyś za bardzo to rozdrabniał. Wydaje się że to co masz w tej metodzie wystarczy wystawić w jakiejś metodzie/klasie statycznej. Wysłanie komandy dla czegoś tak prostego, gdzie nawet nie potrzebujesz wstrzykiwać zależności to trochę przerost formy nad treścią.

1 użytkowników online, w tym zalogowanych: 0, gości: 1