Назад к вопросам
Junior — Middle
92
Можешь перечислить основные паттерны проектирования для классов?
Компании, где спрашивали
ИНДИНС
Ответ от нейросети
sobes.tech AI
Основные паттерны проектирования для классов в PHP (и в ООП в целом):
- Singleton — гарантирует, что класс имеет только один экземпляр, и предоставляет глобальную точку доступа к нему.
- Factory Method — определяет интерфейс для создания объекта, позволяя подклассам изменять тип создаваемого объекта.
- Abstract Factory — предоставляет интерфейс для создания семейств связанных объектов без указания конкретных классов.
- Strategy — позволяет выбирать алгоритм поведения объекта во время выполнения, инкапсулируя разные алгоритмы в отдельные классы.
- Decorator — динамически добавляет объектам новые обязанности, оборачивая их в другие объекты.
- Observer — определяет зависимость один-ко-многим, чтобы при изменении состояния объекта уведомлять и обновлять зависимые объекты.
- Adapter — преобразует интерфейс класса в другой интерфейс, ожидаемый клиентом.
- Facade — предоставляет упрощённый интерфейс к сложной системе классов.
Пример Singleton в PHP:
class Singleton {
private static $instance = null;
private function __construct() {}
private function __clone() {}
public static function getInstance() {
if (self::$instance === null) {
self::$instance = new self();
}
return self::$instance;
}
}
Эти паттерны помогают писать гибкий, расширяемый и поддерживаемый код.