Junior — Middle
Môžete vysvetliť, čo predstavuje vzor Chain of Response a ako sa používa?
sobes.tech AI
Odpoveď od AI
Vzor reťazca zodpovednosti je správanie vzoru, ktorý umožňuje postupné odovzdávanie požiadavky reťazcom spracovateľov, kým ju niektorý z nich ne spracuje.
Hlavná myšlienka je, že každý spracovateľ rozhodne, či môže požiadavku spracovať; ak nie, odovzdá ju ďalšiemu v reťazci.
Použitie v iOS:
- Spracovanie udalostí alebo chýb, keď viac objektov môže potenciálne spracovať udalosť.
- Delegovanie úloh v reťazci, napríklad spracovanie vstupu používateľa alebo odpovedí siete.
Príklad zjednodušenej implementácie v 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("Spracované ConcreteHandlerA")
} else {
next?.handle(request: request)
}
}
}
class ConcreteHandlerB: Handler {
var next: Handler?
func handle(request: String) {
if request == "B" {
print("Spracované ConcreteHandlerB")
} else {
next?.handle(request: request)
}
}
}
// Použitie
let handlerA = ConcreteHandlerA()
let handlerB = ConcreteHandlerB()
handlerA.next = handlerB
handlerA.handle(request: "B") // Výstup: Spracované ConcreteHandlerB
Týmto spôsobom vzor pomáha vyhnúť sa pevnej väzbe medzi odosielateľom a príjemcom požiadavky, čím systém zostáva flexibilnejší a rozšíriteľnejší.