Я понимаю принципы кодирования для интерфейсов - отделять реализацию от интерфейса и разрешать замену интерфейса интерфейса.
Должен ли я кодировать интерфейсы для каждого класса, который я пишу, или это overkill? Я не хочу удвоить количество исходных файлов в проекте, если это действительно того стоит.
Какие факторы я могу использовать, чтобы решить, следует ли кодировать по интерфейсу или нет?