Sobes.tech
Junior — Middle

Ar galite pateikti pavyzdį, kada sąsajų skirstymas projekte yra pateisinamas?

sobes.tech AI

Atsakymas iš AI

Interfeisų skirstymas yra pagrįstas, kai turite didelį interfeisą su daugybe metodų, kurie ne visada yra reikalingi visiems klientams. Pavyzdžiui, iOS projekte galite padalinti protokolą į kelis siauresnius, kad skirtingos klasės įgyvendintų tik tas metodus, kurie jiems iš tikrųjų reikalingi. Tai pagerina kodo skaitomumą ir palengvina priežiūrą.

Pavyzdys: yra MediaPlayable protokolas su metodais play(), pause(), stop(), record(). Jei klasė atsakinga tik už atkūrimą, jai nereikia įgyvendinti record(). Tada galima padalinti į du protokolus:

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

protocol MediaRecordable {
    func record()
}

Taip, klasės įgyvendina tik joms reikalingus interfeisus.