Junior — Middle
Ai putea explica principiul segregării interfețelor în programarea orientată pe obiect?
sobes.tech AI
Răspuns de la AI
Principiul segregării interfețelor (Interface Segregation Principle, ISP) afirmă că este mai bine să creezi mai multe interfețe specializate decât una universală. Clienții nu trebuie să depindă de metode pe care nu le utilizează.
În practică, dacă ai o interfață cu multe metode și diferite clase folosesc doar o parte din ele, ar trebui să împarți interfața în mai multe interfețe mai restrânse. Acest lucru crește flexibilitatea și facilitează întreținerea codului.
De exemplu, pe iOS, poți separa interfața pentru lucrul cu rețeaua și cu baza de date:
protocol NetworkService {
func fetchData()
}
protocol DatabaseService {
func saveData()
}
class DataManager: NetworkService, DatabaseService {
func fetchData() {
// implementarea încărcării datelor
}
func saveData() {
// implementarea salvării datelor
}
}
Astfel, dacă o clasă utilizează doar funcții de rețea, poate depinde doar de NetworkService, fără a cunoaște metodele de salvare a datelor.