Middle
İdarəetmə strukturu nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Swift-də metodların üç əsas yayım növü mövcuddur:
-
Birbaşa yayım (Direct Dispatch): Ən sürətli. Kompilyator hansı metodun çağırılacağını dəqiq bilir. Standart olaraq strukturlar, final-klasslar, xüsusi metodlar üçün istifadə olunur.
struct MyStruct { func directMethod() { // Birbaşa yayım print("Direct") } } -
Cədvəl yayımı (Table Dispatch): Sinif metodları üçün (final olmayan). Hər sinifin virtual metodlar cədvəli (vtable) var və hər metodun unikal indeksi mövcuddur. Kompilyator işləmə zamanı vtable-ə müraciət edir və lazım olan tətbiqi tapır. Polimorfizmi təmin edir.
class MyClass { func tableMethod() { // Cədvəl yayımı print("Table") } } class MySubClass: MyClass { override func tableMethod() { // Overridden metod, həmçinin cədvəldən istifadə edir print("Table override") } } -
Mesajlar vasitəsilə yayım (Message Dispatch): Ən çevik, amma ən yavaş.
@objc dynamicilə işarələnmiş objc metodları üçün istifadə olunur. Objective-C sistemi işləmə zamanı metodu adından (seçici) axtarır.@objc class MyObjcClass: NSObject { @objc dynamic func messageMethod() { // Mesajlar vasitəsilə yayım (ObjC, dinamik) print("Message") } }
| Yayım növü | Sürət | Çeviklik (polimorfizm, dinamiklik) | Standart tətbiq olunduğu yer |
|---|---|---|---|
| Birbaşa | Sürətli | Aşağı | Strukturlar, final-klasslar/metodlar, xüsusi |
| Cədvəl ilə | Orta | Orta | Sinif metodları |
| Mesajlar vasitəsilə | Yavaş | Yüksək | @objc dynamic metodlar (Objective-C) |