Մետաօբյեկտ

Ինֆորմատիկայում մետաօբյեկտը մի օբյեկտ է, որը կառավարում է՝ ստեղծում է, նկարագրում է, իրականացնում է այլ օբյեկտներ (ներառյալ իրեն)։ Այն օբյեկտը, որին պատկանում է մետաօբյեկտը, կոչվում է բազային օբյեկտ։ Մետաօբյեկտը կարող է որոշ տեղեկություններ պարունակել բազային օբյեկտի բաղադրիչների մասին, ինչպիսիք են տիպը, ինտերֆեյսը, դասը, մեթոդները, ատրիբուտները, վերլուծության ծառը և այլն։ Մետաօբյեկտները ինֆորմատիկայի reflection սկզբունքի օրինակ են, երբ համակարգը (սովորաբար կատարման ժամանակ) հասանելիություն ունի իր սեփական ներքին կառուցվածքին։ Reflection-ը համակարգին հնարավորություն է տալիս հեշտությամբ ձևափոխել, վերածրագրավորել ինքն իրեն, դրանով իսկ հնարավոր դարձնելով վերակազմակերպել սեփական վարքը կատարման ընթացքում։

Մետաօբյեկտների արձանագրություն 

Մետաօբյեկտների արձանագրությունը (metaobject protocol, MOP) որոշում է այն կանոնները, որոնցով հասանելի են դառնում և կառավարվում են օբյեկտների համակարգի կառուցվածքն ու վարքը։ Մետաօբյեկտների արձանագրության ֆունկցիաներից են.
 Նոր դասի ստեղծումն ու վերացումը,
 Նոր հատկության կամ մեթոդի ստեղծումը,
 Ստիպել դասին ժառանգվել մի այլ դասից («փոխել դասի կառուցվածքը»),
 Դասի մեթոդը որոշող գոդի սեղեղծումը կամ ձևափոխումը։

Մետաօբյեկտների արձանագրությունը հակասում է Բերտրան Մեյերի open/close սկզբունքին, որը պահանջում է, որ ծրագրային օբյեկտները պետք է լինեն «բաց՝ ընդլայնման համար» բայց «փակ՝ ձևափոխությունների» համար։ Մետաօբյեկտների արձանագրությունը համակարգի մակարդակով թափանցիկ է դարձնում օբյեկտների ներքին կառուցվածքն ու օբյեկտների ամբողջ համակարգը։ Գործնականում սա նշանակում է, որ ծրագրավորողը կարօղ է օբյեկտն օգտագործեն հենց նաույն օբյեկտը վերասահմանելու համար՝ թերևս բավականին բարդ եղանակով։

References