Junior — Middle
Kas saaksite selgitada liideste eraldamise põhimõtet objektorienteeritud programmeerimises?
sobes.tech AI
Vastus AI-lt
Interfeisų atskyrimo principas (Interface Segregation Principle, ISP) sako, kad geriau kurti keletą specializuotų interfeisų, o ne vieną bendrą. Klientai neturėtų būti priklausomi nuo metodų, kurių jie nenaudoja.
Praktikoje tai reiškia, kad jei turite interfeisą su daugybe metodų ir skirtingos klasės naudoja tik dalį jų, reikėtų jį suskirstyti į keletą siauresnių. Tai padidina lankstumą ir palengvina kodo priežiūrą.
Pavyzdžiui, iOS galima atskirti interfeisą darbui su tinklu ir duomenų baze:
protocol NetworkService {
func fetchData()
}
protocol DatabaseService {
func saveData()
}
class DataManager: NetworkService, DatabaseService {
func fetchData() {
// duomenų įkėlimo įgyvendinimas
}
func saveData() {
// duomenų išsaugojimo įgyvendinimas
}
}
Taip, jei klasė naudoja tik tinklo funkcijas, ji gali priklausyti tik nuo NetworkService, nežinodama duomenų išsaugojimo metodų.