Junior — Middle
Կարող եք տալ Chain of Responsibility դիզայնի օրինակ ծրագրային կոդում:
sobes.tech AI
Պատասխան AI-ից
Պատկերավորության շղթան թույլ է տալիս փոխանցել հարցումը պատասխանատու շղթայի միջոցով, մինչև որ մեկը այն մշակվի:
Օրինակ C#-ում:
// Աբստրակտ պատասխանատու
abstract class Handler
{
protected Handler next;
public void SetNext(Handler nextHandler) {
next = nextHandler;
}
public virtual void Handle(string request) {
if (next != null) {
next.Handle(request);
}
}
}
// կոնկրետ պատասխանատուներ
class ConcreteHandlerA : Handler
{
public override void Handle(string request) {
if (request == "A") {
Console.WriteLine("Կատարած ConcreteHandlerA-ի կողմից");
} else {
base.Handle(request);
}
}
}
class ConcreteHandlerB : Handler
{
public override void Handle(string request) {
if (request == "B") {
Console.WriteLine("Կատարած ConcreteHandlerB-ի կողմից");
} else {
base.Handle(request);
}
}
}
// Օգտագործում
var handlerA = new ConcreteHandlerA();
var handlerB = new ConcreteHandlerB();
handlerA.SetNext(handlerB);
handlerA.Handle("B"); // Արդյունք՝ Կատարած ConcreteHandlerB-ի կողմից