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.