й не треба, нам треба
"можно считать, что всё с чем имеем дело - это интерфейс" - шоб шо? Шоб закривати очі на те чи нормально спроектована логіка чи ні?
"при разработке мы решам сделать ли интерфейс или конкретный класс" - якщо у вас так постає питання то ви не факт шо розумієте навіщо і де потрібне одне, і навіщо і де потрібно інше
Підкажіть, а для чого вам треба знати? Сьогодні це може бути щось конкретне, а завтра це стане інтерфейсом. Чи інакше, ви на кожен клас будете робити ще й інтерфейс?
«це може бути щось конкретне, а завтра це стане інтерфейсом» - так, але це не означає що вам не треба знати що там прямо зараз. Ви маєте розуміти на що саме ви завʼязуєтесь чи що саме розширяєте. Ви ж розумієте що фактичний «контракт взаємодії» може змінитись при переході від реалізації до інтерфейсу? Далі якщо ви не проводите заміну реалізація->інтерфейс бо для вас то одне і теж і вам пофіг, то скоріш за все порушуєте D із SOLID. А якщо таки проводите заміну але зберігаєте контракт взаємодії шоб не зламати клієнтський код, то є ризик що ви порушуєте I із SOLID. В будь-якому разі сприймати що «все інтерфейс і неважливо як іменувати» для мене виглядає більш деструктивно і менш раціонально
Не порушує, навпаки. Ви працюєте з інтерфейсом а не з конкретною реалізацією. А ось якщо вам доводится працювати з конкретною реалізацією, значить щось пішло не так.
Так а я про що? Про це ж саме
Обсуждают сегодня