Sobes.tech
Junior — Middle

Можете ли да обясните какво представлява моделът Chain of Response и как се използва?

sobes.tech AI

Отговор от AI

Моделът Веригата на отговорност (Chain of Responsibility) е поведенчески шаблон, който позволява последователно предаване на заявка по веригата от обработващи, докато някой от тях не я обработи.

Основната идея е, че всеки обработващ решава дали може да обработи заявката; ако не, я предава на следващия в веригата.

Приложение в iOS:

  • Обработка на събития или грешки, когато няколко обекта потенциално могат да обработят събитието.
  • Делегиране на задачи по веригата, например обработка на входни данни от потребителя или отговори от мрежата.

Пример за опростена реализация на Swift:

protocol Handler {
    var next: Handler? { get set }
    func handle(request: String)
}

class ConcreteHandlerA: Handler {
    var next: Handler?
    func handle(request: String) {
        if request == "A" {
            print("Обработено от ConcreteHandlerA")
        } else {
            next?.handle(request: request)
        }
    }
}

class ConcreteHandlerB: Handler {
    var next: Handler?
    func handle(request: String) {
        if request == "B" {
            print("Обработено от ConcreteHandlerB")
        } else {
            next?.handle(request: request)
        }
    }
}

// Използване
let handlerA = ConcreteHandlerA()
let handlerB = ConcreteHandlerB()
handlerA.next = handlerB

handlerA.handle(request: "B") // Ще изведе: Обработено от ConcreteHandlerB

По този начин моделът помага да се избегне твърда връзка между изпращача и получателя на заявката, правейки системата по-гъвкава и разширяема.