Ողջույն հարգելի ընթերցողներ։ Ինչպես խոստացել էի օբյեկտ կողմնորոշված ծրագրավորման մասին հոդվածում՝ այսօր կխոսեմ ՕԿԾ-ի հիմնական գաղափարներից մեկի՝ ինկապսուլացիայի (encapsulation) մասին։
Ինչպես արդեն ասել եմ՝ ինկապսուլացիան իրենից ներկայացնում է մեխանիզմ, որը կապում է կոդը տվյալների հետ (որոնք այն օգտագործում է)՝ պաշտպանելով այդ երկուսը արտաքին ներգործությունից։ Ինկապսուլացիան կարելի է համարել պաշտպանիչ շերտ, որը պաշտպանում է կոդը և տվյալները այլ արտաքին կոդի կողմից շահագործումից։ Այդ պաշտպանիչ շերտում կոդին և տվյալներին հասանելիությունը կառավարվում է մանրակրկտորեն ստեղծված ինտերֆեյսով։
Ինկապսուլացիայի օրինակ, իրական կյանքում, կարող է հանդիսանալ ավտոմեքենայի փոխանցման տուփը։ Վարորդը հասանելիություն չունի փոխանցման տուփում կատարվող գործողություններին։ Նա կարող է ազդեցություն ունենալ այդ համակարգի վրա միայն փոխանցման լծակի օգնությամբ։ Ավտոմատ փոխանցման տուփում կատարվող գործողությունները ինկապսուլացված են, այդ իսկ պատճառով յուրաքանչյուր արտադրող կարող է իրականցնել այդ գործողությունները յուրովի։
Նմանատիպ սկզբունք կարելի է կիրառել ծրագրավորման ոլորտում։ Ինկապսուլացված կոդի առավելությունը կայանում է նրանում, որ բոլորին հայտնի է, թե ինչպես հասանելիություն ստանալ այդ կոդին, և այն կարող են օգտագործել, առանց իմանալու, թե ինչպես է այն իրականացված։
Ինկապսուլացիայի հիմքը հանդիսանում է կլասը։ Կլասը ստեղծելիս հայտարարվում են կոդը և տվյալները, որոնք կազմում են այդ կլասը։ Այս տարրերը միասին կոչվում են կլասի անդամներ։ Կլասում հայտարարված տվյալները կոչվում են կլասի փոփոխական-անդամներ կամ հատկություններ (տարբեր ծրագրավորման լեզուներում դրանց տարբեր կերպ են անվանում), իսկ կոդը, որը ղեկավարում է այդ տվյալները՝ մեթոդներ կամ ֆունկցիաներ (կրկին այս տարբերությունը կախած է ծրագրավորման լեզուներից)։ Ճիշտ գրված ծրագրերում մեթոդները որոշում են, թե ինչպես են օգտագործվելու փոփոխական-անդամները։
Ինչպես արդեն նշեցի, ինկապսուլացիայի հիմքը հանդիսանում է կլասը, որում յուրաքանչյուր անդամ (մեթոդ կամ փոփոխական-անդամ) կարող է հայտարարվել բաց կամ փակ։ Բաց հանդիսանում են այն անդամները, որոնց կարող են կամ պետք է հասանելիություն ունենան արտաքին միջավայրի կոդերը։ Փակ անդամներն այն անդամներն են, որոնք հասանելի են միայն տվյալ կլասի անդամներին։ Հետևաբար յուրաքանչյուր այլ կոդ, որը չի հանդիսանում տվյալ կլասի անդամ՝ չի կարող հասանելիություն ունենալ կլասի փակ անդամներին։ Կլասի փակ անդամները կարող են հասանելի լինել կոդի այլ հատվածներին բաց անդամների միջոցով։ Դրա շնորհիվ բացառվում է արտաքին կոդի կողմից սխալ գործողությունների իրականացումը։ Դա, իհարկե, նշանակում է, որ բաց ինտերֆեյսը պետք է մանրակրկտորեն նախագծվի և չպետք է շատ բացահայտի կլասի ներքին կառուցվածքը։
Այսքանը ինկապսուլացիայի վերաբերյալ։ Ասվածը կոդի տեսքով կքննարկենք հետագա հոդվածներում։
Որևէ հարցի դեպքում կարող եք դիմել մեզ մեկնաբանությունների կամ քննարկումների բաժիններում։
Շնորհակալություն մեր բլոգից օգտվելու համար։