Sobes.tech
Junior — Middle

Pouvez-vous expliquer en quoi consiste le modèle Chain of Response et comment il est utilisé?

sobes.tech IA

Réponse de l'IA

Le patron Chaîne de Responsabilité est un patron comportemental qui permet de transmettre une requête le long d'une chaîne de gestionnaires jusqu'à ce que l'un d'eux la traite.

L'idée principale est que chaque gestionnaire décide s'il peut traiter la requête ; sinon, il la transmet au suivant dans la chaîne.

Application en iOS :

  • Gestion d'événements ou d'erreurs lorsque plusieurs objets peuvent potentiellement gérer l'événement.
  • Délégation de tâches en chaîne, par exemple, traitement de l'entrée utilisateur ou des réponses réseau.

Exemple d'implémentation simplifiée en 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("Traitement par ConcreteHandlerA")
        } else {
            next?.handle(request: request)
        }
    }
}

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

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

handlerA.handle(request: "B") // Affichera : Traitement par ConcreteHandlerB

Ainsi, le patron aide à éviter une relation rigide entre l'expéditeur et le destinataire de la requête, rendant le système plus flexible et extensible.