Хорош ли подход, когда при проектировании программного обеспечения взаимодействие классов описывается только интерфейсами? Если да, то должен ли я всегда использовать этот подход?
Я должен разработать библиотеку классов, которая должна иметь высокую тестируемость (я использую C#).
Эта библиотека имеет один фасад и некоторое количество классов с различными взаимодействиями на заднем плане.
В случае оптимизации этой библиотеки для хорошей тестируемости я заменил большую часть классов на интерфейсы.
И когда я это сделал, я увидел на диаграмме связей (диаграмма классов Visual Studio) только интерфейсы.
Это нормальное решение моей проблемы? Или должен быть какой-то другой подход?
P/S: Возможно, это хорошо известный способ в программном проектировании, но я не могу найти подтверждения в книгах, которые у меня есть.