Sobes.tech
Back to questions
Junior — Middle
93

Можешь перечислить основные паттерны проектирования для классов?

Companies where asked
ИНДИНС

Answer from AI

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

Эти паттерны помогают писать гибкий, расширяемый и поддерживаемый код.