Junior — Middle
Kas saaksite selgitada Side Table kontseptsiooni ja selle rakendust?
sobes.tech AI
Vastus AI-lt
Side Table on abistav andmestruktuur, mida kasutatakse iOS-is (Objective-C ja Swift), et dünaamiliselt lisada omadusi objektidele ilma nende algset klassi muutmata.
Seda kasutatakse siis, kui on vaja olemasoleva klassi funktsionaalsust laiendada, näiteks lisada uue omaduse objekti, kuid pole võimalust või soovi luua alamklass.
Side Table'i rakendamisel kasutatakse tavaliselt seotud objektide (associated objects) mehhanismi, mis võimaldab siduda täiendavaid andmeid objekti juurde jooksvalt.
Näide Objective-C-s:
#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
Sellisel viisil võimaldab Side Table paindlikult laiendada objekte ilma nende lähtekoodi muutmata.