کپسوله سازی Encapsulation

کپسوله سازی یا Encapsulation چیست؟

کپسوله سازی (Encapsulation) در برنامه نویسی رایانه‌ای، اصلاحی است که معمولا در مبحث کلاس‌ها و به عنوان یکی از اصول شئ گرایی مطرح می‌شود. بسته به زبان‌های برنامه‌نویسی مختلف، این مفهوم دارای تعاریف مشابهی است که معمولا امکان دسته‌بندی (کپسوله کردن یا قرار دادن در یک فضای بسته) داده‌ها و متدهایی که روی این داده‌ها عمل می‌کنند را فراهم می‌کند و یا مکانیزمی در اختیار برنامه‌نویسان قرار می‌دهد که آن‌ها را قادر می‌سازد دسترسی مستقیم به برخی اجزای یک شئ (آبجکت) را کنترل (یا محدود) نمایند و یا هردوی این مفاهیم را در برمی‌گیرد.

بر اساس مفهوم دوم کپسوله سازی می‌توان برخی از عناصر (فیلدها) و توابع (متدها) را از خارج از قلمرو تعریف کلاس پنهان نمود به طوری که تغییر مقدار و دسترسی به فیلدها و استفاده از متدهای یک شئ تنها توسط خود شئ امکان‌پذیر باشد. به این ترتیب برنامه نویس می‌تواند بدون درگیر شدن با اعمال و رفتار داخلی و پیچیدگی‌های این اعمال در کلاس، به اهداف خود دست پیدا کند و در عین حال از دسترسی غیرمجاز به مقادیر و اعمال خصوصی کلاس نیز جلوگیری به عمل می‌آید. گفتنی است محدودسازی سطح دسترسی در زبان‌های برنامه‌نویسی معمولا توسط تعدادی کلمه کلیدی (نظیر Private و Public) انجام می‌شود که به تغییردهنده‌های دسترسی (Access Modifier) موسوم می‌باشند.

به منظور درک بهتر مفهوم کپسوله سازی، کلاسی به نام Circle (دایره) را در نظر بگیرید. این کلاس علاوه بر تابع سازنده‌ای که مختصات مرکز دایره و شعاع آن را به عنوان متغیرهای نمونه دریافت می‌کند و عددی بودن مقادیر دریافتی را بررسی می‌کند از قرار گرفتن دایره در محیط نمایان صفحه نیز اطمینان حاصل می‌کند و متدهایی برای محاسبه و برگرداندن محیط و مساحت دایره و رسم آن (قابل دسترس در بیرون از کلاس) در اختیار برنامه نویس قرار می‌دهد. با اینحال امکان تغییر مستقیم داده‌های مربوط به مرکز دایره و شعاع آن در خارج از کلاس ضروری به نظر نمی‌رسد. به این ترتیب با ایجاد شیئی از نوع این کلاس می‌توان به تمامی اعمال مورد نیاز بدون درگیری با جزئیات و پیچیدگی‌های اضافی آن دسترسی داشت و در عین حال از دستکاری و مقداردهی غیرمجاز به متغیرهای کلاس نیز اطمینان حاصل می‌شود.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

واژه‌های مرتبط

وراثت Inheritance وراثت یا Inheritance چیست؟ وراثت (Inheritance) اصطلاحی در حوزه برنامه‌نویسی شئ‌گراست که در آن یک کلاس یا شئ بر مبنای یک کلاس یا شئ دیگر ساخته می‌شود ...
برنامه نویسی شئ گرا Object-Oriented Programming... برنامه نویسی شئ گرا یا Object-Oriented Programming چیست؟ برنامه نویسی شئ گرا (Object-Oriented Programming) یا به اختصار OOP، یک مدل برنامه‌نویسی بر پ...
کلاس Class کلاس یا Class چیست؟ کلاس (Class) در برنامه نویسی شئ گرا، نوعی قالب برنامه نویسی قابل گسترش است که برای ایجاد اشیاء، تعیین مقادیر اولیه‌ی وضعیت و مشخص...
تغییر دهنده دسترسی Access Modifier تغییر دهنده دسترسی یا Access Modifier چیست؟ تغییر دهنده دسترسی (Access Modifier) در برنامه نویسی شئ‌گرا به گونه‌ای از کلمات کلیدی اطلاق می‌شود که جهت...
ماوس رایانه Computer mouse ماوس رایانه یا Computer mouse چیست؟ ماوس رایانه (Computer mouse) یا موشواره یک دستگاه اشاره‌گر است که در انواع معمولی می‌تواند حرکات دو بعدی را تشخیص...

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *