Sobes.tech
Junior — Middle

Kunt u het principe van interface-segregatie in objectgeoriënteerd programmeren uitleggen?

sobes.tech AI

Antwoord van AI

Het principe van interface-segregatie (Interface Segregation Principle, ISP) stelt dat het beter is om meerdere gespecialiseerde interfaces te maken dan één universele. Klanten mogen niet afhankelijk zijn van methoden die ze niet gebruiken.

In de praktijk betekent dit dat als je een interface hebt met veel methoden en verschillende klassen slechts een deel ervan gebruiken, je de interface moet opsplitsen in meerdere smallere interfaces. Dit verhoogt de flexibiliteit en maakt het onderhoud van de code eenvoudiger.

Bijvoorbeeld, op iOS kun je de interface voor netwerk- en databasewerking scheiden:

protocol NetworkService {
    func fetchData()
}

protocol DatabaseService {
    func saveData()
}

class DataManager: NetworkService, DatabaseService {
    func fetchData() {
        // implementatie van gegevens ophalen
    }
    
    func saveData() {
        // implementatie van gegevens opslaan
    }
}

Zo kan een klasse die alleen netwerkfuncties gebruikt, afhankelijk zijn van alleen NetworkService, zonder de methoden voor gegevensopslag te kennen.