İnkapsulyasiya (proqramlaşdırma)

İnformatikada inkapsulyasiya (lat. en capsulapaketləşdirmə) məlumatların və/və ya funksiyaların vahid komponent şəklində paketləşdirilməsidir.

İnkapsulyasiya obyekt yönümlü proqramlaşdırmanın əsas anlayışlarından biridir. OYP-nin üç konseptində – inkapsulyasiya, varislikpolimorfizm (ad-hoc formasında polimorfizm və ya alttiplərin polimorfizmi) konseptində məlumatlar abstraksiya[1] prinsipinə uyğun olaraq reallaşır.

Obyekt yönümlü dillərdə inkapsulyasiya prosesi, bir qayda olaraq, sinif mexanizmləri vasitəsilə reallaşır. Bəzi tədqiqatçılar inkapsulyasiya prosesini həm obyekt yönümlü proqramlaşdırmaya məxsus xüsusi anlayış kimi, həm də leksik görünmə sahəsini tənzimləyən bir vasitə kimi təsnifləşdirirlər. Lakin bu yanaşma birmənalı hesab olunmur, çünki inkapsulyasiyanı bütün proqramlaşdırma dilləri üçün bu cür təsnifatlaşdırmaq olmaz. Məsələn, leksik görünmə sahəsinin təyininə əsaslanan Scheme və Standard ML dillərində inkapsulyasiyanın görünmə sahəsinin idarə edilməsi vasitəsi kimi istifadəsinə ehtiyac yoxdur.

Görünmə sahələri açar sözləri vasitəsilə təyin edilir. Bəzi alternativləri nəzərə almasaq, əksər proqramlaşdırma dillərində görünmə sahəsinin təyini zamanı aşağıdakı açar sözlərindən istifadə edilir:

public (açıq): Bu görünmə sahəsindəki xüsusiyyətlər public açar sözü ilə yaradılır. Bu görünmə sahəsində olan leksik strukturdan kodun istənilən yerində istifadə etmək mümkündür.
protected (qorunmuş): Bu görünmə sahəsindəki xüsusiyyətlərə və metodlara yalnız obyektlərə aid olan sinif metodları və bu siniflərdən törəyən ixtiyari yarımsiniflərin eyni metodları vasitəsilə müraciət etmək mümkündür.
private (qapalı): Bu görünmə sahəsində olan sinifin nümayəndələrinə, yalnız bu sinif daxilində olan metodlar vasitəsilə müraciət etmək olar.

Ümumi mənada, "inkapsulyasiya" anlayışına, proqramlaşdırma dillərindən asılı olaraq, aşağıdakı ifadələrindən heç olmasa biri aiddir:

  • məlumatların metodlarla əlaqəsinə şərait yaradan və bu məlumatların emalı üçün nəzərdə tutulmuş dil konstruksiyası;
  • proqramın bir komponentindən digər komponentinə girişi məhdudlaşdırmağa imkan verən dil mexanizmi.

Qeydlər redaktə

  1. Abstraksiya ilə abstrakt məlumat tipləri fərqli anlayışlardır. Abstrakt məlumat tiplərində də inkapsulyasiya imkanları mövcuddur, lakin bu məlumat tipləri fərqli davranışa malikdir.