метод
execute(array $data, DTO1 $dto1)
.
Одному из классов понадобилась еще информация с DTO2, другим она не нужна.
Как лучше поступить в данной ситуации? Пока что делаю
setDto2
перед
execute
.
Создать дто с данными которые содержатся в ткх двух дто?
Может сделать интерфейс DTO и использовать его в методе execute? Тогда не будешь зависеть от реализации.
Если не хочется делать необязательный параметр, можно запилить декоратор интерфейса и класса с методом execute, которые будут расширять execute(array $data, DTO1 $dto1), принимать 2 параметра dto. А в классе, в котором нужно DTO2 использовать уже этот декоратор.🤔
А эта DTO2 для каждого преобразования разная? Если нет, то я бы прокидывал её через конструктор. Если да, то не совсем понятно, почему этот класс реализует интерфейс, где нужно только одно dto.
Обсуждают сегодня