Sobes.tech
Junior — Middle

Tudná magyarázni az interfészek szétválasztásának elvét az objektumorientált programozásban?

sobes.tech MI

Válasz az MI-től

Az interfészek szétválasztásának elve (Interface Segregation Principle, ISP) szerint jobb több specializált interfészt létrehozni, mint egy általánosat. A kliensek nem szabad, hogy olyan módszerekre legyenek függők, amelyeket nem használnak.

Gyakorlatban ez azt jelenti, hogy ha van egy sok módszert tartalmazó interfész, és különböző osztályok csak egy részét használják, akkor érdemes az interfészt több szűkebb interfészre bontani. Ez növeli a rugalmasságot és megkönnyíti a kód karbantartását.

Például iOS-en az interfészt szét lehet választani a hálózati és az adatbázis műveletekhez:

protocol NetworkService {
    func fetchData()
}

protocol DatabaseService {
    func saveData()
}

class DataManager: NetworkService, DatabaseService {
    func fetchData() {
        // adatok betöltésének megvalósítása
    }
    
    func saveData() {
        // adatok mentésének megvalósítása
    }
}

Így, ha egy osztály csak hálózati funkciókat használ, csak a NetworkService-től függhet, anélkül, hogy ismerné az adatok mentésének módszereit.