Sobes.tech
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ší.