Sobes.tech
Junior — Middle

Puteți oferi un exemplu când separarea interfețelor este justificată într-un proiect?

sobes.tech AI

Răspuns de la AI

Separarea interfețelor este justificată atunci când aveți o interfață mare cu multe metode care nu sunt întotdeauna necesare pentru toți clienții. De exemplu, într-un proiect iOS, puteți împărți un protocol în mai multe protocoale mai înguste, astfel încât diferite clase să implementeze doar metodele de care au cu adevărat nevoie. Acest lucru îmbunătățește lizibilitatea codului și facilitează întreținerea.

Exemplu: există un protocol MediaPlayable cu metodele play(), pause(), stop(), record(). Dacă o clasă se ocupă doar de redare, nu trebuie să implementeze record(). Atunci, se poate împărți în două protocoale:

protocol MediaPlayable {
    func play()
    func pause()
    func stop()
}

protocol MediaRecordable {
    func record()
}

Astfel, clasele implementează doar interfețele de care au nevoie.