AlkatraZ, это холиварная тема, но мир веба движется в сторону интерфейсов. То есть сначала интерфейс, который описывает что умеет класс, а затем уже его реализация (или несколько полиморфных реализаций).
Польза этого подхода такая же, как у PSR - твой код зависит от семантики, а не реализации.