Junior — Middle
Meg tudná magyarázni a Side Table fogalmát és alkalmazását?
sobes.tech MI
Válasz az MI-től
A Side Table egy segédadat-struktúra, amelyet az iOS (Objective-C és Swift) használ az objektumok dinamikus tulajdonságainak hozzáadására anélkül, hogy megváltoztatná eredeti osztályukat.
Azt akkor alkalmazzák, amikor egy meglévő osztály funkcionalitását szeretnék kibővíteni, például egy új tulajdonság hozzáadásával egy objektumhoz, de nincs lehetőség vagy szándék alosztály létrehozására.
A Side Table megvalósításában általában az asszociált objektumok (associated objects) mechanizmusát használják, amely lehetővé teszi további adatok kötését egy objektumhoz futásidőben.
Példa Objective-C-ben:
#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
Így a Side Table lehetővé teszi az objektumok rugalmas bővítését anélkül, hogy módosítaná azok forráskódját.