Это больше зависит от контекста задачи.
Допустим у вас есть класс логгера, который часто используется в других классах.
Даже если сейчас у вас один класс логгера в проекте - есть смысл создать для него интерфейс.
Это разумно в контексте использования логгера - он решает чисто свои задачи, слабо связан с логикой других классов. Интерфейс позволяет вам добиться меньшей связности в проекте. Вам будет легко заменить один логгер на другой (при использования Dependency Injection, например).
Для файл-менеджера, я думаю, это тоже может быть актуально, т.к. типичный менеджер файлов не должен быть тесно связан с логикой других классов и теоретически должен быть заменяем другим классом.