Sobes.tech
Junior — Middle

Можете ли да дадете пример кога разделянето на интерфейсите е оправдано в проект?

sobes.tech AI

Отговор от AI

Разделянето на интерфейси е оправдано, когато имате голям интерфейс с много методи, които не са винаги необходими за всички клиенти. Например, в iOS проект може да разделите протокол на няколко по-тесни, така че различните класове да реализират само методите, които наистина им трябват. Това подобрява четливостта на кода и улеснява поддръжката.

Пример: има протокол MediaPlayable с методите play(), pause(), stop(), record(). Ако класът отговаря само за възпроизвеждане, не е необходимо да реализира record(). Тогава може да се раздели на два протокола:

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

protocol MediaRecordable {
    func record()
}

Така класовете реализират само нужните им интерфейси.