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()
}

Шу тарзда, синфлар фақат уларга керак бўлган интерфейсларни амалга оширади.