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-ը թույլ է տալիս ճկուն կերպով ընդլայնել օբյեկտները՝ առանց նրանց սկզբնաղբյուր կոդը փոխելու։