Розетка

Что такое интерфейсы — на пальцах

Интерфейс — это розетка в вашей квартире.

Для того чтобы не паять и не скручивать провода при подключении электрических приборов к электросети в вашей квартире, кто-то когда-то придумал розетки.

Задали стандарт:

  1. Розетка должна иметь круглую площадку такого-то диаметра

  2. На площадке есть два отверстия для контактов, такого-то диаметра и такой-то глубины

  3. Контакты расположены на одной линии проходящей через центр этого круга, на таком-то расстоянии контакта от центра

  4. Напряжение в розетке 220 вольт

Что-то вроде этого.

Имея такой стандарт, любой производитель электроприборов сможет сделать вилку для подключения своего прибора к любой стандартной розетке.

Что даёт использование розеток как интерфейсов

  1. Вы можете к одной и той же розетке подключить любые совместимые приборы. И даже размножить розетки если нужно или переместить в нужное место с помощью тройников и удлинителей.

  2. Вы можете свои приборы подключить к любой розетке, как в своём доме так и в другом доме.

На примере классов

Нам нужно связать два класса.

Но если один класс будет знать о другом классе, между ними появится жёсткая связь.

Жёсткая связь между классами делает код хрупким и усложняет поддержку.

Один из способов избавиться от этой связи, это убрать знание о другом классе, вставив прослойку в виде интерфейса.

Оба класса будут знать только о прослойке, следовательно и зависеть только от этой прослойки.

Мы сможем изменять частично, или заменить целиком любой из классов, при условии того что не меняем прослойку.

Внедряем интерфейс