Знающие люди, подскажите: Как грамотно реализовать интерфейс: у меня есть разные источники файлов: файловая система, ftp, s3, кастомные файловые сервисы. Вся работа с этими файлами идет через IFileRepository который например может скопировать файлы из одной папки - находящейся в s3 например - в другую, которая лежит например на ftp сервере. Короче в итоге с ними можно работать как с обычными файлами, через один интерфес, не зная где конкретно какой файл физически лежит. Для каждого типа хранилища есть реализация IFileManager типа S3FileManager, FTPFileManager, ... и тд. А потом с фабрикой подсовываем нужный FileManager в зависимости от файла. Проблема в том что у меня появился proxy-class который реализует IFileManager, но в нутри уже просто проксирует вызовы в нужный FileManager. Норм ли такой подход?