интерфейс и реализация
EN: interface vs implementation
Две стороны абстракции. Интерфейс — это видимая поверхность, от которой зависит пользователь: для функции это её имя, её входы и её возвращаемое значение; он выступает контрактом. Реализация — это скрытый механизм, выполняющий этот контракт: тело функции и инструкции, которые оно запускает. Реализацию можно свободно переписывать, пока интерфейс держит своё обещание, поэтому пользователю не нужно ничего менять.