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()
}
Мындайча айтканда, класстар керектүү интерфейстерди гана ишке ашырат.