Junior — Middle
Potresti spiegare il principio di segregazione delle interfacce nella programmazione orientata agli oggetti?
sobes.tech AI
Risposta dell'AI
Il Principio di Segregazione delle Interfacce (ISP) afferma che è meglio creare più interfacce specializzate piuttosto che una sola interfaccia universale. I clienti non dovrebbero dipendere da metodi che non utilizzano.
In pratica, se hai un'interfaccia con molti metodi e classi diverse usano solo una parte di essi, è consigliabile suddividerla in più interfacce più ristrette. Questo aumenta la flessibilità e semplifica la manutenzione del codice.
Ad esempio, su iOS puoi dividere l'interfaccia per lavorare con la rete e con il database:
protocol NetworkService {
func fetchData()
}
protocol DatabaseService {
func saveData()
}
class DataManager: NetworkService, DatabaseService {
func fetchData() {
// implementazione del caricamento dati
}
func saveData() {
// implementazione del salvataggio dati
}
}
In questo modo, se una classe utilizza solo funzioni di rete, può dipendere solo da NetworkService, senza conoscere i metodi di salvataggio dei dati.