Sobes.tech
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:

  1. 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")
        }
    }
    
  2. 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")
        }
    }
    
  3. Mesajlar vasitəsilə yayım (Message Dispatch): Ən çevik, amma ən yavaş. @objc dynamic ilə 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)