Описание тега interface
Интерфейс является назначенной точкой взаимодействия с компонентом.
Четко определенные, всеобъемлющие, универсальные, но все же минимальные интерфейсы имеют решающее значение для надежности, расширяемости, обслуживания и совместимости.
В программировании чаще всего встречаются:
- api, которые состоят из символов (типов (и всего, что они могут влечь), функций, констант, переменных, шаблонов, пространств имен и т. д.) и их определенного поведения, которое может включать их собственные полные по Тьюрингу языки.
- abi, которые определяют сопоставление API-интерфейсов с базовой машиной.
- протоколы, которые определяют взаимодействие через соединение, сеть и т.п.
- И многие комбинированные, особенно при прямом взаимодействии с устройством, например для написания драйвера устройства.
В некоторых языках, в основном объектно-ориентированных с одинарным наследованием, interface
является ограниченным типом, не содержащим состояния и не создаваемым сам по себе, и может наследовать только от (любого количества) других interface
с. Класс может реализовать любое количество
interface
s в дополнение к наследованию от одного другого class
(в большинстве этих языков используется однокоренная иерархия наследования).
Большинство настаивает на том, чтобы сначала был указан базовый класс, а некоторые позволяют явно реализоватьinterface
s, что делает их недоступными, кроме как через interface
-поинтер такого типа.
Реализация interface
варьируется между языками программирования и средами; например, C# имеет следующее определение ( Интерфейсы (Руководство по программированию на C#));
Интерфейсы описывают группу связанных функций, которые могут принадлежать любому классу или структуре. Вы определяете интерфейс с помощью ключевого слова interface, как показано в следующем примере.
interface IEquatable<T> {
bool Equals(T obj);
}
Интерфейс может содержать или не содержать или использовать любое количествоinterface
s или их аналог.
Вы можете " программировать интерфейс, а не реализацию ", не используя никакихinterface
, а также не могут, но по-прежнему использовать interface
повсюду.
Тег [interface] должен использоваться вместе с соответствующими тегами [language], где это применимо.