Давайте начнем с некоторых определений:
Интерфейс n. Набор всех сигнатур, определенных операциями объекта, называется интерфейсом к объекту
Тип n. Определенный интерфейс
Простым примером интерфейса , как определено выше, будут все методы объекта PDO, такие как query()
, commit()
, close()
и т. Д., В целом, а не по отдельности. Эти методы, т. Е. Его интерфейс, определяют полный набор сообщений, запросов, которые могут быть отправлены объекту.
A type , как определено выше, является конкретным интерфейсом. Я буду использовать интерфейс готовой формы для демонстрации: draw()
, getArea()
, getPerimeter()
и т. Д.
Если объект относится к типу База данных, мы имеем в виду, что он принимает сообщения / запросы интерфейса базы данных, query()
, commit()
и т. Д. Объекты могут быть разных типов. Вы можете иметь объект базы данных типа фигуры, пока он реализует свой интерфейс, и в этом случае это будет подтип .
Многие объекты могут иметь разные интерфейсы / типы и реализовывать этот интерфейс по-разному. Это позволяет нам заменять объекты, позволяя нам выбирать, какой из них использовать. Также известен как полиморфизм.
Клиент будет знать только интерфейс, а не реализацию.
Таким образом, в сущности, программирование интерфейса потребовало бы создания некоторого типа абстрактного класса, такого как Shape
с указанным только интерфейсом, например draw()
, getCoordinates()
, getArea()
и т. Д. И затем реализовать различные конкретные классы эти интерфейсы, такие как класс Circle, класс Square, класс Triangle. Следовательно, программа для интерфейса не является реализацией.