Задача «Логгер с различным поведением»

Справка

Паттерн стратегия

Задача

1. Реализовать класс логгер. Примерный интерфейс:

class LoggerStrategy {
public:
    virtual void write(const std::string &message) = 0;
};

2. Реализовать 3 типа поведения (стратегий)

  • ConsoleLogger - выводит сообщение в консоль
  • SimpleFileLogger - выводит сообщение в файл
  • TimedFileLogger - выводит текущее время + сообщение в файл

3. Реализовать класс, который будет использовать одну из стратегий

class Logger {
public:
    void set_strategy(LoggerStrategy& strategy);

    void log_message(const std::string &message);
};