Если вы всегда код для интерфейсов в Java [закрыто]

Я понимаю принципы Coding to Interfaces - чтобы отделить реализацию от интерфейса и позволить менять и заменять реализации интерфейса.

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

Какие факторы я могу использовать, чтобы решить, следует ли кодировать по интерфейсу или нет?