Sobes.tech
Junior — Middle

Μπορείτε να εξηγήσετε την έννοια του Side Table και την εφαρμογή του;

sobes.tech AI

Απάντηση από AI

Το Side Table είναι μια βοηθητική δομή δεδομένων που χρησιμοποιείται στο iOS (Objective-C και Swift) για την δυναμική προσθήκη ιδιοτήτων σε αντικείμενα χωρίς να αλλάζει η αρχική τους κλάση.

Εφαρμόζεται όταν χρειάζεται να επεκτείνετε τη λειτουργικότητα μιας υπάρχουσας κλάσης, για παράδειγμα, να προσθέσετε μια νέα ιδιότητα σε ένα αντικείμενο, χωρίς να έχετε τη δυνατότητα ή την επιθυμία να δημιουργήσετε μια υποκλάση.

Στην υλοποίηση του Side Table, συνήθως χρησιμοποιείται ο μηχανισμός των συσχετισμένων αντικειμένων (associated objects), που επιτρέπει τη σύνδεση πρόσθετων δεδομένων με ένα αντικείμενο κατά την εκτέλεση.

Παράδειγμα χρήσης σε Objective-C:

#import <objc/runtime.h>

static char kAssociatedObjectKey;

@implementation NSObject (SideTable)

- (void)setCustomProperty:(NSString *)value {
    objc_setAssociatedObject(self, &kAssociatedObjectKey, value, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}

- (NSString *)customProperty {
    return objc_getAssociatedObject(self, &kAssociatedObjectKey);
}

@end

Έτσι, το Side Table επιτρέπει την ευέλικτη επέκταση αντικειμένων χωρίς την τροποποίηση του πηγαίου κώδικα τους.