Что такое Interface Segregation Principle (ISP)?

Ответ

Клиенты не должны зависеть от интерфейсов, которые не используют. Лучше много маленьких интерфейсов, чем один большой.

// Плохо: классу нужен только save, но он вынужден реализовать delete, find
interface Repository { function save($e); function delete($e); function find($id); }

// Хорошо: разделить по ролям
interface Persister { function save($e); }
interface Finder { function find($id); }
interface Remover { function delete($e); }

Толстый интерфейс ведет к пустым методам или лишним зависимостям.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.