Middle
56
Επιλέξτε ένα μοτίβο σχεδίασης για το σύστημα καταγραφής (σε βάση δεδομένων, αρχείο κειμένου, μέσω ερώτησης)
Εταιρείες όπου ρωτήθηκαν
Απάντηση από 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);
}
}
Такой подход обеспечивает гибкость и расширяемость системы логирования.