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.
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;
}
}

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