Является ли плохой практикой создавать интерфейс для DTO, чтобы уйти от конкретных реализаций с их применением?
Есть модуль, у которого много аргументов завязаны на передачу конкретной реализации DTO. Нужно сделать эту логику более гибкой и передавать в аргументы DTO "одного семейства". Будет ли говнокодом создавать интерфейс-маркер для ухода от привязки к конкретным реализациям? Технически это решит проблему, но на разных форумах встречала ответ, что это плохая практика, потому что появляется неявная логика.
Является ли плохой практикой создавать интерфейс для DTO, чтобы уйти от конкретных реализаций с их применением?
эээ... а когда создание интерфейсов вообще может оказаться плохой практикой? ну если не брать совсем идиотские примеры.. DTO - это не аналог stdClass в PHP, класс может и должен инкапсулировать данные, доступ осуществляется через методы. Интерфейс декларирует методы для работы с "required" "свойствами" класса.
Daria Motorina, я не могу сказать костыль это или нет в данном случае - наша штатная гадалка в отпуске.. Чем более четко задана структура данных, тем лучше, главное чтобы это не препятствовало расширению/модернизации функционала. Ваши интерфейсы должны быть на подобие Psr\Http\Message\MessageInterface