Sobes.tech
Junior — Middle

Можете ли да објасните принцип раздвајања интерфејса у објектно оријентисаном програмирању?

sobes.tech АИ

Одговор од АИ

Принцип раздвајања интерфејса (Interface Segregation Principle, ISP) каже да је боље креирати више специјализованих интерфејса него један универзални. Клијенти не би требало да зависе од метода које не користе.

У пракси, ако имате интерфејс са много метода и различите класе користе само део њих, требало би да га поделите на неколико ужих интерфејса. Ово повећава флексибилност и олакшава одржавање кода.

На пример, у iOS-у можете поделити интерфејс за рад са мрежом и базом података:

protocol NetworkService {
    func fetchData()
}

protocol DatabaseService {
    func saveData()
}

class DataManager: NetworkService, DatabaseService {
    func fetchData() {
        // реализација учитавања података
    }
    
    func saveData() {
        // реализација чувања података
    }
}

Тако, ако класа користи само мрежне функције, може зависити само од NetworkService, без познавања метода чувања података.