Поскольку большинство команд и ответов специально адаптированы к одному варианту использования или методу обслуживания, они редко используются повторно в разных службах. Я рассматриваю возможность использования вложенных статических классов внутри самого класса обслуживания, чтобы тесно инкапсулировать их со службой, к которой они принадлежат.
Для немногих исключений, которые требуют совместного использования, я бы извлек их в специальную папкуshared/commands.
Вот упрощенный пример на Java:
Код: Выделить всё
public class UserService {
// Command
public static class CreateUserCommand {
public String username;
public String password;
}
// Response
public static class UserResponse {
public String userId;
public String status;
}
public UserResponse handle(CreateUserCommand command) {
// Logic...
return new UserResponse();
}
}
- Есть ли какие-либо скрытые технические недостатки или известные анти-шаблоны этого подхода
- Влияет ли этот подход негативно на автоматизированные инструменты документирования API (например, Swagger/OpenAPI) по сравнению с использованием автономных классов?