УрокПроверено 2026Локальный прогресс

Интерфейс как граница зависимости

Интерфейс фиксирует вызываемый контракт; реализация решает, как его выполнить.

interface ArticleRepository

Пример

<?php
interface ArticleRepository {
    public function find(int $id): ?Article;
    public function save(Article $article): void;
}

Граница

Сценарий зависит от ArticleRepository, а PDO-реализация остаётся снаружи. Тест может подставить реализацию в памяти без базы.

Размер

Интерфейс описывает потребность клиента. Большой универсальный repository с десятками методов заставляет реализации зависеть от лишнего.

Ошибка

Интерфейс IArticle с единственной реализацией не приносит пользы сам по себе. Он оправдан границей, сменяемостью или тестовым seam.

Задание

Опишите Clock с методом now() и объясните, почему это упрощает тестирование времени.

Локальный прогресс

Закрепите материал

Отметка, заметка, чек-лист и ответы остаются в localStorage этого браузера и не отправляются в аналитику.

Связанные материалы

Источники и проверка

  • PHP Documentation Group — структурный источник, без внешней ссылки

Последняя содержательная проверка: . Автор-разработчик Михаил Каржин. Методика качества контента.

Данные этого сервиса

Настройки cookie и локальных данных

Аналитика

Текущий статус: не выбран. До согласия обе аналитические системы не загружаются.

Локальные данные

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

Политики

Политика конфиденциальности · Политика использования файлов cookie