Sobes.tech
Junior — Middle

Pode explicar em que consiste o padrão Chain of Response e como é utilizado?

sobes.tech IA

Resposta da IA

O padrão Chain of Responsibility é um padrão comportamental que permite passar uma solicitação ao longo de uma cadeia de manipuladores até que um deles a processe.

A ideia principal é que cada manipulador decide se pode processar a solicitação; caso contrário, ela é passada ao próximo na cadeia.

Aplicação em iOS:

  • Manipulação de eventos ou erros quando vários objetos podem potencialmente tratar o evento.
  • Delegação de tarefas em cadeia, por exemplo, processamento de entrada do usuário ou respostas de rede.

Exemplo de implementação simplificada em 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("Processado por ConcreteHandlerA")
        } else {
            next?.handle(request: request)
        }
    }
}

class ConcreteHandlerB: Handler {
    var next: Handler?
    func handle(request: String) {
        if request == "B" {
            print("Processado por ConcreteHandlerB")
        } else {
            next?.handle(request: request)
        }
    }
}

// Uso
let handlerA = ConcreteHandlerA()
let handlerB = ConcreteHandlerB()
handlerA.next = handlerB

handlerA.handle(request: "B") // Irá exibir: Processado por ConcreteHandlerB

Dessa forma, o padrão ajuda a evitar uma ligação rígida entre o remetente e o destinatário da solicitação, tornando o sistema mais flexível e extensível.