Interfejs to szablon składający się ze stałych i deklaracji metod, które muszą być użyte w klasach, które go zaimplementują.

Interfejs deklarujemy modyfikatorem interface:

Dana klasa może implementować wiele interfejsów:

Interfejsy mogą dziedziczyć inne interfejsy:

Przykład interfejsu:

Jak widać, jest to interfejs służący do połączenia się z serwerem bazy danych. Zgodnie z zasadą zawiera stałe, w tym przypadku dane do połączenia oraz definicję funkcji linkDB(), która będzie nawiązywała połączenie. Ale w jaki sposób? To określi dopiero klasa, która będzie implementowała ten interfejs 🙂

Implementacja interfejsu odbywa się za pomocą słowa kluczowgo implements:

Przykład implementacji interfejsu z pierwszego przykładu:

Funkcja linkDB() korzysta ze sterownika PDO do komunikacji z bazą. Aby odwołać się do stałych z interfejsu Connection musimy użyć operatorów rozróżnionego zasięgu (::).

Schemat:

Dodajmy kolejną klasę MysqliController, która będzie korzystać ze sterownika MySQLi do komunikacji z bazą. Zasada ta sama, jedynie wnętrze funkcji linkDB() ulegnie zmianie i nazwa obiektu, czyli: new MysqliController():

Implementując w klasach PdoController i MysqliController jeden wspólny interfejs, funkcja linkDB() może przyjmować różne sposoby komunikacji z bazą 🙂

Ten przykład świetnie pokazuje możliwości interfejsów. Oczywiście klasy implementujące interfejs mogą zawierać również własne funkcje oraz właściwości, nie tylko te które narzuca im interfejs.

ENKAPSULACJA →