Junior — Middle
Mohol by ste vysvetliť princíp rozdeľovania rozhraní v objektovo orientovanom programovaní?
sobes.tech AI
Odpoveď od AI
Princíp rozdeľovania rozhraní (Interface Segregation Principle, ISP) hovorí, že je lepšie vytvárať viac špecializovaných rozhraní ako jedno univerzálne. Klienti by nemali závisieť od metód, ktoré nevyužívajú.
V praxi to znamená, že ak máte rozhranie s mnohými metódami a rôzne triedy používajú len časť z nich, mali by ste rozhranie rozdeliť na niekoľko užších. To zvyšuje flexibilitu a uľahčuje údržbu kódu.
Napríklad v iOS môžete rozdeliť rozhranie pre prácu so sieťou a s databázou:
protocol NetworkService {
func fetchData()
}
protocol DatabaseService {
func saveData()
}
class DataManager: NetworkService, DatabaseService {
func fetchData() {
// implementácia načítania dát
}
func saveData() {
// implementácia ukladania dát
}
}
Takže, ak trieda používa len sieťové funkcie, môže závisieť len od NetworkService, bez znalosti metód ukladania dát.