Что такое интерфейсы — на пальцах
Интерфейс — это розетка в вашей квартире.
Для того чтобы не паять и не скручивать провода при подключении электрических приборов к электросети в вашей квартире, кто-то когда-то придумал розетки.
Задали стандарт:
-
Розетка должна иметь круглую площадку такого-то диаметра
-
На площадке есть два отверстия для контактов, такого-то диаметра и такой-то глубины
-
Контакты расположены на одной линии проходящей через центр этого круга, на таком-то расстоянии контакта от центра
-
Напряжение в розетке 220 вольт
Что-то вроде этого.
Имея такой стандарт, любой производитель электроприборов сможет сделать вилку для подключения своего прибора к любой стандартной розетке.
Что даёт использование розеток как интерфейсов
-
Вы можете к одной и той же розетке подключить любые совместимые приборы. И даже размножить розетки если нужно или переместить в нужное место с помощью тройников и удлинителей.
-
Вы можете свои приборы подключить к любой розетке, как в своём доме так и в другом доме.
На примере классов
Нам нужно связать два класса.
Но если один класс будет знать о другом классе, между ними появится жёсткая связь.
Жёсткая связь между классами делает код хрупким и усложняет поддержку.
Один из способов избавиться от этой связи, это убрать знание о другом классе, вставив прослойку в виде интерфейса.
Оба класса будут знать только о прослойке, следовательно и зависеть только от этой прослойки.
Мы сможем изменять частично, или заменить целиком любой из классов, при условии того что не меняем прослойку.