Exemplo

Implementação do Design Pattern Chain of Responsibility: Exemplificando um sistema de restaurante, onde há um elo entre cada etapa do atendimento, sendo cada operação executada em ordem.

Você pode testar o exemplo aqui.


IHandler.cs

public interface IHandler
{
    void HandleRequest(Pedido pedido);

    void SetNext(IHandler handler);

    bool BreakChain();
}

public abstract class BaseHandler : IHandler
{
    protected IHandler _next { get; set; }

    public abstract void HandleRequest(Pedido pedido);

    public void SetNext(IHandler handler)
    {
        _next = handler;
    }

    public void NextHandleRequest(Pedido pedido)
    {
        if (_next != null) _next.HandleRequest(pedido);
    }

    public bool BreakChain()
    {
        _next = null;
        return true;
    }
}



Figura 4. Captura de tela da saída do programa.

Como já mencionado, você pode testar o exemplo aqui.

Last updated