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 тарабынан иштетилди
Ушул жол менен, үлгү суранычтын жөнөтүүчүсү менен кабыл алуучусу ортосунда катуу байланыш болуудан сактайт, системаны көбүрөөк ийкемдүү жана кеңейтилип турган кылат.