Sobes.tech
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-ի կողմից