Junior — Middle
Cavablar zənciri nümunəsinin nə olduğunu və necə istifadə olunduğunu izah edə bilərsinizmi?
sobes.tech Süni İntellekt
AI-dan cavab
Məsuliyyət zənciri (Chain of Responsibility) — bu davranış şablonudur və sorğunu ardıcıl olaraq işləyicilər zənciri boyunca ötürməyə imkan verir, ta ki, biri onu işləsin.
Əsas fikir odur ki, hər bir işləyici sorğunu işləyə biləcəyinə qərar verir; əks halda, onu zəncirin növbəti üzvünə ötürür.
iOS-da tətbiqi:
- Bir neçə obyekt hadisəni və ya xətanı potensial olaraq işləyə bilər.
- Tapşırıqların zəncir şəklində təyin edilməsi, məsələn, istifadəçi girişinin və ya şəbəkə cavablarının işlənməsi.
Swift-də sadə tətbiq nümunəsi:
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 tərəfindən işlənib")
} else {
next?.handle(request: request)
}
}
}
class ConcreteHandlerB: Handler {
var next: Handler?
func handle(request: String) {
if request == "B" {
print("ConcreteHandlerB tərəfindən işlənib")
} else {
next?.handle(request: request)
}
}
}
// İstifadə
let handlerA = ConcreteHandlerA()
let handlerB = ConcreteHandlerB()
handlerA.next = handlerB
handlerA.handle(request: "B") // Nəticə: ConcreteHandlerB tərəfindən işlənib
Bu şəkildə, şablon sorğu göndərən və alan arasında sərt əlaqəni qarşısını almağa kömək edir, sistemi daha çevik və genişləndirilə bilən edir.