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()
}
Така класовете реализират само нужните им интерфейси.