Клиенты не должны зависеть от интерфейсов, которые не используют. Лучше много маленьких интерфейсов, чем один большой.
// Плохо: классу нужен только 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); }Толстый интерфейс ведет к пустым методам или лишним зависимостям.