Sobes.tech
Junior — Middle

Vai jūs varētu izskaidrot saskarnes sadalīšanas principu objektorientētajā programmēšanā?

sobes.tech AI

Atbilde no AI

Interfeisu atdalīšanas princips (Interface Segregation Principle, ISP) saka, ka ir labāk izveidot vairākus specializētus interfeisus, nevis vienu universālu. Klienti nedrīkst būt atkarīgi no metodēm, kuras viņi neizmanto.

Praktiski tas nozīmē, ja jums ir interfeiss ar daudzām metodēm, un dažādas klases izmanto tikai daļu no tām, tad ir vērts sadalīt interfeisu vairākos šaurākos. Tas palielina elastību un atvieglo koda uzturēšanu.

Piemēram, iOS var sadalīt interfeisu tīkla un datu bāzes darbībām:

protocol NetworkService {
    func fetchData()
}

protocol DatabaseService {
    func saveData()
}

class DataManager: NetworkService, DatabaseService {
    func fetchData() {
        // datu ielādes realizācija
    }
    
    func saveData() {
        // datu saglabāšanas realizācija
    }
}

Tādā veidā, ja klase izmanto tikai tīkla funkcijas, tā var būt atkarīga tikai no NetworkService, nezinot datu saglabāšanas metodes.