Sobes.tech
Назад к вопросам
Middle
3

Выбери шаблон проектирования для системы логирования (в БД, текстовый файл, через запрос)

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

Для системы логирования, которая может записывать данные в разные источники (БД, текстовый файл, через запрос), хорошо подходит шаблон проектирования Стратегия (Strategy).

Этот шаблон позволяет определить семейство алгоритмов логирования, инкапсулировать каждый из них и делать их взаимозаменяемыми. В зависимости от конфигурации или условий выполнения можно выбирать нужный способ логирования без изменения клиентского кода.

Пример на Java:

public interface LoggerStrategy {
    void log(String message);
}

public class FileLogger implements LoggerStrategy {
    public void log(String message) {
        // запись в файл
    }
}

public class DbLogger implements LoggerStrategy {
    public void log(String message) {
        // запись в базу данных
    }
}

public class QueryLogger implements LoggerStrategy {
    public void log(String message) {
        // логирование через запрос
    }
}

public class LoggerContext {
    private LoggerStrategy strategy;

    public LoggerContext(LoggerStrategy strategy) {
        this.strategy = strategy;
    }

    public void setStrategy(LoggerStrategy strategy) {
        this.strategy = strategy;
    }

    public void log(String message) {
        strategy.log(message);
    }
}

Такой подход обеспечивает гибкость и расширяемость системы логирования.