Назад к задачам
Junior — Middle+
4

Разработка единого интерфейса доступа к различным хранилищам

Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Необходимо выделить общую абстракцию и спроектировать единый интерфейс, который позволит одинаково работать с файлами, базой данных и удалённым сервером.

class FileManager {
public:
    void SaveToFile(const std::string& filePath);
    void ReadFromFile(const std::string& filePath);
};

class DBManager {
public:
    void SaveToDB(const std::string& url);
    void ReadFromDB(const std::string& url);
};

class ServerManager {
public:
    void SaveToServer(const std::string& url);
    void ReadFromServer(const std::string& url);
};

Опишите, какие методы и типы следует включить в абстракцию, как её реализовать и как обеспечить возможность расширения под новые типы хранилищ без изменения клиентского кода.