Восприятие «Модели цепочки ответственности 🤔» на работе

задняя часть
Восприятие «Модели цепочки ответственности 🤔» на работе

Это 15-й день моего участия в августовском испытании обновлений. Узнайте подробности события:Испытание августовского обновления

Сначала уточните смысл

  • Шаблон цепочки ответственности: для запроса создается цепочка объектов-получателей. Этот режим дает тип запроса, разделяет отправителя и получателя запроса и относится к поведенческому режиму.
  • В этом шаблоне обычно каждый получатель содержит ссылку на другой получатель. Если объект не может обработать запрос, он передаст тот же запрос следующему получателю и так далее.

Сценарии, которые мы используем в работе

  • Например, мы пробуем практичную систему утверждения компании открытого доступа, например, в счетах за возмещение расходов или в системах утверждения.
  • Часто у нас есть абсолютное право на одобрение BOOS, затем второе одобрение на финансы и первое одобрение на руководителей отделов.
  • Затем мы интуитивно думаем о бизнес-логике как о
if (leader.author != null) {
    if (financialer.author != null) {
        if (boss.author != null){
            handle(...)
        }
    }
}
  • Возьмите следующий пример, чтобы глубже понять шаблон цепочки ответственности.

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

  • Права принудительного исполнения каждого уровня могут быть связаны вниз

  • Создать абстрактный классabstractAuther, с подробными уровнями индивидуальных обязанностей

image.png

  • Создать класс учителей

image.png

  • Создать класс монитора

image.png

  • Создать ветку группы

image.png

  • Создавайте роли на разных уровнях и назначайте им разные уровни ответственности

image.png

  • конечный результат
可以查看学生的家庭信息------家庭信息详细
可以查看学生的家庭信息------籍贯信息详细
可以查看学生的籍贯信息------籍贯信息详细
可以查看学生的家庭信息------团建信息详细
可以查看学生的籍贯信息------团建信息详细
可以查看学生的团籍关系------团建信息详细
  • Обязанности каждой роли могут передаваться постепенно или между уровнями.

характеристика

  • Основное решение:Обработчик в цепочке ответственности отвечает за обработку запроса. Пользователю нужно только отправить запрос в цепочку ответственности, и ему не нужно заботиться о деталях обработки запроса и доставке запроса, поэтому цепочка ответственности разделяет отправителя запроса и обработчика запроса.
  • преимущество:  
  1. Уменьшить сцепление. Он разделяет отправителя и получателя запросов.
  2. Объекты упрощены. Делает объект не нуждающимся в знании структуры цепочки.
  • недостаток:  
  1. Нет никакой гарантии, что запрос будет принят.
  2. Производительность системы будет в определенной степени затронута, и отладка кода неудобна, что может привести к циклическим вызовам.