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