بایگانی برچسب‌ها : شئ گرایی

کپسوله سازی Encapsulation

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

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

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

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

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

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

برنامه نویسی شئ گرا Object-Oriented Programming

برنامه نویسی شئ گرا یا Object-Oriented Programming چیست؟

برنامه نویسی شئ گرا (Object-Oriented Programming) یا به اختصار OOP، یک مدل برنامه‌نویسی بر پایه‌ی مفهوم اشیاء (Object ها) می‌باشد. در مدل رایج این مفهوم، متغیرها و عملیات مرتبط با یک موضوع مشخص با کمک مفهوم کلاس‌ها به صورت کپسوله، در کنار یکدیگر و در قالب یک بسته‌بندی قرار می‌گیرد.

در برنامه‌نویسی شئ گرای مبتنی بر کلاس، هر شئ نمونه‌ای است از یک کلاس و داده‌های مربوط به هر شئ، ممکن است وابسته به خود آن شئ باشد (متغیرهای نمونه) یا برای تمامی اشیاء از همان نوع، ثابت و یکسان باشد (متغیرهای کلاس). از این متغیرها در برنامه‌نویسی شئ گرا تحت عنوان فیلد (field)، ویژگی یا خصوصیت (Attribute/Property) یاد می‌شود. رویه‌هایی که رفتار یا عملیات مرتبط با اشیاء را پیاده‌سازی می‌کنند معمولا متد (method) نامیده می‌شوند و همانند متغیرها به دو دسته‌ی متدهای نمونه و متدهای کلاس دسته‌بندی می‌شوند.

اشیا می‌توانند در دنیای واقعی معادل یک شئ حقیقی باشند و یا اینکه کاملا انتزاعی باشند. برای مثال، در یک نرم افزار ترسیم اشکال می‌توان دایره‌ها و مستطیل‌هایی که روی صفحه رسم می‌شوند را در قالب یک شئ به شمار آورد. در یک نرم افزار حسابداری نیز هر کارمند در شرکت یک شئ به شمار می‌رود. اگر تصور کنیم به عنوان مثال، هر کارمند نمونه‌ای از کلاسی با نام Employee باشد این کلاس می‌تواند دارای متغیرهایی برای نگه‌داری نام و نام خانوادگی کارمند، جنسیت، شماره حساب و … باشد. عملیات مرتبط با این اشیاء از جمله واریز حقوق به حساب کارمند نیز از متدهای این کلاس به شمار می‌رود.

در سایه‌ی برنامه‌نویسی شئ گرا می‌توان مفاهیمی چون وراثت و چندریختی را نیز تعریف نمود. اکثر زبان‌های برنامه نویسی امروزی نظیر C#، Visual Basic، PHP، C++، Java و … از شئ گرایی پشتیبانی می‌کنند. از مزایای استفاده از این مدل برنامه‌نویسی می‌توان به قابلیت استفاده‌ی مجدد، عیب‌یابی و نگه‌داری ساده‌تر، توسعه‌پذیری و کارایی بالاتر اشاره کرد.