Junior — Middle
Puteți explica conceptul de Side Table și aplicarea sa?
sobes.tech AI
Răspuns de la AI
Side Table este o structură de date auxiliară utilizată în iOS (Objective-C și Swift) pentru a adăuga proprietăți dinamice obiectelor fără a modifica clasa lor originală.
Se aplică atunci când este necesar să extindeți funcționalitatea unei clase existente, de exemplu, să adăugați o nouă proprietate unui obiect, dar fără posibilitatea sau dorința de a crea o subclasă.
În implementarea Side Table, de obicei se folosește mecanismul de obiecte asociate (associated objects), care permite legarea de date suplimentare de un obiect în timpul execuției.
Exemplu de utilizare în 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
Astfel, Side Table permite extinderea flexibilă a obiectelor fără a modifica codul lor sursă.