Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
6
Разделение контракта файловой системы для повышения расширяемости
Условие задачи
Необходимо проанализировать существующий контракт IFileHandler. Как можно разбить его на более узкоспециализированные интерфейсы, чтобы улучшить масштабируемость и удовлетворить принцип единственной ответственности (SRP)?
class IFileHandler {
public:
virtual void open(std::string path) = 0;
virtual void close() = 0;
virtual std::vector<std::string> readLines() = 0;
virtual void writeLines(const std::vector<std::string>& data) = 0;
virtual ~IFileHandler() {}
};
class MyFile : public IFileHandler {
void open(std::string path) override;
void close() override;
std::vector<std::string> readLines() override;
void writeLines(const std::vector<std::string>& data) override;
};