Ответы пользователя по тегу ООП
  • Как реализовать dependency-tracking и change-notification в PHP?

    nekt
    @nekt
    программист
    Есть мнение, что не стоит городить огород с каскадным обновлением объектов. Скорее всего достаточно будет в целевых объектах иметь свойства-геттеры, которые выполняют некую функцию при каждом запросе к ним. Такой подход будет гораздо проще поддерживать, нежели трекинг.

    Для трекинга же рекомендую использовать событийную модель - скорее всего в фреймворке оно есть, а если нет, реализуется достаточно просто - добавляется класс обработчика событий, от которого зависят все остальные компоненты, можно добавить класс пула объектов, через который доступен любой инстанс (вероятно через него их и создавать стоит). После этого при каждом изменении инстансов они обязаны сообщать, мол я такойто, я изменился, список измененных полей. А зависимые классы при создании подписываются на эти события. При возникновении события все подписанные на него инстансы обновляются. А если подписчиков нет - событие просто дропается.
    Ответ написан
    2 комментария