Sobes.tech
Middle
60

Жазуу системасы үчүн дизайн үлгүсүн тандаңыз (маалыматтар базасында, тексттик файлда, суроо аркылуу)

Кайсыл жерде компаниялар сурады
СБЕРСБЕР

AIден жооп

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);
    }
}

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