Вопрос по предыдущему Вашему сообщению:

А как сделать что бы программа переключалась между низкоуровневыми модулями реализующими абстрактные типы в Files?
Например, между HostFiles и HostPackedFile или HostFTPFile?

Что бы пользователь, например, вводил только путь(может url), а программа определяла, что это и выбирала разными реализациями.