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