Junior — Middle
Vai jūs varētu izskaidrot, kas ir Chain of Response modelis un kā tas tiek izmantots?
sobes.tech AI
Atbilde no AI
Atbildības ķēdes (Chain of Responsibility) modelis ir uzvedības šablons, kas ļauj sūtīt pieprasījumu pa kārtai saistītu apstrādātāju ķēdi, līdz viens no tiem to apstrādā.
Galvenā ideja ir tāda, ka katrs apstrādātājs lemj, vai viņš var apstrādāt pieprasījumu; ja nē, tas tiek nodots nākamajam ķēdē.
Piemērojums iOS:
- notikumu vai kļūdu apstrāde, kad vairāki objekti potenciāli var apstrādāt notikumu.
- uzdevumu nodošana ķēdē, piemēram, lietotāja ievades vai tīkla atbilžu apstrāde.
Vienkāršots Swift piemērs:
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("Apstrādāts no ConcreteHandlerA")
} else {
next?.handle(request: request)
}
}
}
class ConcreteHandlerB: Handler {
var next: Handler?
func handle(request: String) {
if request == "B" {
print("Apstrādāts no ConcreteHandlerB")
} else {
next?.handle(request: request)
}
}
}
// Lietošana
let handlerA = ConcreteHandlerA()
let handlerB = ConcreteHandlerB()
handlerA.next = handlerB
handlerA.handle(request: "B") // Izvade: Apstrādāts no ConcreteHandlerB
Šādā veidā modelis palīdz izvairīties no stingras saistības starp sūtītāju un saņēmēju, padarot sistēmu elastīgāku un paplašināmu.