Sobes.tech
Junior — Middle

Pourriez-vous expliquer le principe de séparation des interfaces en programmation orientée objet?

sobes.tech IA

Réponse de l'IA

Le principe de séparation des interfaces (Principe de Ségrégation des Interfaces, ISP) indique qu'il est préférable de créer plusieurs interfaces spécialisées plutôt qu'une seule interface universelle. Les clients ne doivent pas dépendre de méthodes qu'ils n'utilisent pas.

En pratique, cela signifie que si vous avez une interface avec de nombreuses méthodes et que différentes classes n'utilisent qu'une partie d'entre elles, il est conseillé de diviser l'interface en plusieurs interfaces plus spécifiques. Cela augmente la flexibilité et facilite la maintenance du code.

Par exemple, sur iOS, vous pouvez diviser l'interface pour le travail avec le réseau et la base de données :

protocol NetworkService {
    func fetchData()
}

protocol DatabaseService {
    func saveData()
}

class DataManager: NetworkService, DatabaseService {
    func fetchData() {
        // implémentation du chargement des données
    }
    
    func saveData() {
        // implémentation de la sauvegarde des données
    }
}

Ainsi, si une classe utilise uniquement des fonctions réseau, elle peut dépendre uniquement de NetworkService, sans connaître les méthodes de sauvegarde des données.