Уведомления
Очистить
☰ МЕНЮ

PHP Паттерн “Декоратор” (Decorator)

Позволяет добавлять объектам новые возможности без изменения их исходного кода. Он позволяет динамически изменять функциональность объекта во время выполнения программы. Декоратор обычно используется, когда у вас есть иерархия объектов, и вы хотите добавить новые функции на определенном уровне иерархии, не затрагивая другие уровни.

Пример использования паттерна “Декоратор”

class Camera
{
  function takePicture()
  {
    echo "Taking picture...";
  }
}

class MobilePhone
{
  function makeCall()
  {
    echo "Making call...";
  }
}

class CameraPhone extends Camera implements MobilePhone
{
}

// Теперь мы хотим добавить возможность записи видео для камеры в CameraPhone.
// Мы можем сделать это с помощью паттерна "Декоратор".

class VideoRecorder
{
  private $camera;

  function __construct(Camera $camera)
  {
    $this->camera = $camera;
  } 

  // Теперь мы можем добавить метод записи видео в CameraPhone, используя декоратор.

Добавление функций к объектам: декоратор может использоваться для добавления новых функций к объектам без изменения исходного кода этих объектов.

Настройка поведения объектов: декоратор позволяет настраивать поведение объектов без необходимости изменения их исходного кода.

Кэширование результатов запросов: декоратор может кэшировать результаты запросов, чтобы уменьшить количество обращений к источнику данных.

Шифрование данных: декоратор может быть использован для шифрования данных перед их передачей через сеть.

Добавление логгирования: декоратор может добавлять функциональность логирования, чтобы отслеживать действия, происходящие с объектом.