Можешь привести примеры основных паттернов проектирования и объяснить их применение?
Ответ от нейросети
sobes.tech AI
Основные паттерны проектирования и их применение:
-
Singleton — гарантирует, что класс имеет только один экземпляр, и предоставляет глобальную точку доступа к нему. Используется, например, для управления конфигурацией или подключением к базе данных.
-
Factory Method — определяет интерфейс для создания объекта, но позволяет подклассам изменить тип создаваемого объекта. Помогает создавать объекты без указания конкретного класса.
-
Observer — позволяет объектам подписываться на события другого объекта и получать уведомления об изменениях. Часто используется в GUI или при реализации событийных систем.
-
Decorator — динамически добавляет объектам новые обязанности, не изменяя их структуру. Полезен для расширения функционала без наследования.
-
Strategy — определяет семейство алгоритмов, инкапсулирует каждый из них и делает их взаимозаменяемыми. Позволяет менять алгоритмы во время выполнения.
Пример использования Singleton на Java:
public class DatabaseConnection {
private static DatabaseConnection instance;
private DatabaseConnection() {
// инициализация подключения
}
public static synchronized DatabaseConnection getInstance() {
if (instance == null) {
instance = new DatabaseConnection();
}
return instance;
}
}