Как обычно, это зависит. Если вы пишете публичный API, этот подход очень мощный. Примером этого является API Progistics / Connectship. В то время, когда я использовал это, был один конкретный класс. Остальная часть открытого интерфейса была всеми интерфейсами. Они смогли разорвать всю реализацию продукта и переписать его, оставив интерфейсы без изменений.
Конечно, с этим связана стоимость. Вы должны потратить много времени и усилий на создание элегантного API, если вы хотите использовать его в камне (конечно, это тот случай, если вы решите использовать интерфейсы или нет).
С другой стороны, если вы пишете слой доступа к данным для внутреннего бизнес-приложения, вы можете не получить столько вознаграждений.