Sobes.tech
Junior — Middle

Pouvez-vous donner un exemple lorsque la séparation des interfaces est justifiée dans un projet?

sobes.tech IA

Réponse de l'IA

La séparation des interfaces est justifiée lorsque vous avez une interface volumineuse avec de nombreuses méthodes qui ne sont pas toujours nécessaires pour tous les clients. Par exemple, dans un projet iOS, vous pouvez diviser un protocole en plusieurs plus spécifiques pour que différentes classes n'implémentent que les méthodes dont elles ont réellement besoin. Cela améliore la lisibilité du code et facilite sa maintenance.

Exemple : il y a un protocole MediaPlayable avec les méthodes play(), pause(), stop(), record(). Si une classe ne gère que la lecture, elle n'a pas besoin d'implémenter record(). On peut alors le diviser en deux protocoles :

protocol MediaPlayable {
    func play()
    func pause()
    func stop()
}

protocol MediaRecordable {
    func record()
}

Ainsi, les classes n'implémentent que les interfaces dont elles ont besoin.