Ale
ну хз
Artur
а такие примеры попадаются на практике
Ale
почему просто не внести в метод
Artur
например "имеет ли обхект метод toArr"
Artur
например для правильного экспорта
Ale
и в разных инстансах по-разному определять?
Artur
потому что он может не иметь и это нормально
Artur
Artur
потому что длишний труд
Artur
есть метод превращаешгь обхект в массив. нет приводжишь через _sleep
Artur
ну это грязщный пример
Artur
у меня было такое когда я делал вещи "унверсальные"
Ale
ну я чет не понял
Artur
чтобы как я задумал или хоть как-то(например при отладке)
Artur
я такое конечно давно не практикую
Artur
но было такое )
Artur
вот накпример простое - смержить 2 версии бизнес(домен) объекта. может по интерфейсу и в слепую
Artur
типа старая и новая версия
Artur
но старая лучше чем новая никакая
Artur
в прочем не важн
Ale
ну это был какой-то пример, где наличие адаптера и дто спасло бы тебе время)
Ale
ну либо я его неправильно понял
Artur
ну какаяр азница адаптер или нет
Artur
у меня хэлпер был..
Artur
это депенденси инжекшен адаптер )))
Ale
да бля
Ale
адаптер это не про то
Ale
смотри
Artur
а ведь было время когда нельзщя было сменить даже Logger* чтобы ене поломалось
Ale
у тебя есть какая-то бизнес-сущность, которую вы в приложении юзали
Ale
ну пусть профиль
Artur
адаптер это независимая прослойка для реализации, чёрная коробка с ТВОИМ интерфейсом
Ale
class Profile {
private FullName $fullName;
private Phone $phone;
}
чет типа такого
Ale
из соц. сетей тебе прилетала dto уровня
class VkProfileDto { $first_name; $middle_name; $last_name; $email; $phone }
Ale
и ты ее просто мапил на свою бизнес-сущность
Ale
например email тебе вообще не нужен, а остальное трансформил
Ale
потом api изменился
Ale
ты подменяешь адаптер, который плюет туже dto, но логику формирования другая
Ale
и все счастливы
Artur
ты не о том
Ale
вполне вероятно)
Artur
в твоём примере даже конфликта нет )
Artur
склеивал людей в 1 профиль
Artur
генерил "полный прототип"
Artur
но сохранял и "каждые" версии
Artur
но это не про обсуждение примерения инстансоф
Ale
ну я пока и проблемы не увидел)
Artur
можно было дополнить любым обхектом даже без интферфейса
Artur
можно было "смержить" без интерфейса
Artur
нго интерфейс дополнял правила
Evgeniy
но это же костыли)
Ale
не понимаю, что значит "без интерфейса"
Evgeniy
ну типо любые 2 объекта ему дай
Evgeniy
и он сделает магию
Artur
а угода универсальности
Evgeniy
и есть шанс что получится как надо
Evgeniy
а есть шанс что ничего не получится
Artur
Ale
а, мержилка
Ale
я допер
Ale
сложна
Evgeniy
вообще это беда невозможности перегрузки методов)
Artur
причём медржились не только профили из соцсетей
Evgeniy
и следствие от туда уже надо instanceof
Artur
сделал универсально
Anonymous
а чо вы сюда перекатились?
Artur
уйди зашибёт )
Evgeniy
но это имхо
Artur
inctanceof это условно
Artur
есть интерфейс базовый: умеет превращаться в массив
Artur
есть не базовый а отнаследованный. есть правила
Artur
или целый "внешние" методы кастом мержа
Evgeniy
зачем нам знать детали?)
Artur
ну да ну да
Evgeniy
просто у всех есть интерфейсы и тд на работе)
Artur
ну сложно придумать изолированную задачу
Evgeniy
а я тут фигарю либу с di для себя)
Artur
для меня это было акутуально когда я мидлом только становился
Artur
я и тогда понимал что это не единственный способ реалищзации