مفهوم کپسوله سازی در شی گرایی چیست؟ در این مقاله در مورد مفهوم کپسوله سازی توضیح داده و ارتباط آن با بقیه پارامترهای شی گرایی را روشن میکنیم.
برای آشنایی با مفهوم شی گرایی این مقاله را بخوانید.
کپسوله سازی (گاهی در زبان پارسی ، پنهانسازی ، مخفیسازی و محصورسازی نیز نامیده میشود.) در برنامه نویسی شی گرا: در زبان های برنامه نویسی رایانه ای شی گرا ، مفهوم کپسوله سازی (یا OOP Encapsulation) به گروه بندی دادهها و همچنین روشهایی که بر روی این دادهها عمل میشود ، در یک واحد اشاره دارد.
بسیاری از زبانهای برنامهنویسی غالباً از کپسوله سازی در قالب کلاس استفاده میکنند. کلاس مدلی از کد برنامه است که به توسعهدهندگان اجازه میدهد تا شیئی را ایجاد کنند که هم متغیرها (دادهها) و هم رفتارها (توابع یا روشها) را شامل شود.
یک کلاس نمونهای از کپسوله سازی در علوم کامپیوتر است زیرا شامل دادهها و روشهایی است که در یک واحد واحد ترکیب شدهاند.
کپسوله سازی همچنین میتواند به مکانیزمی برای مخفیسازی و محدود کردن دسترسی مستقیم به اجزای خاص یک شی اشاره کند ، به طوری که کاربران نمیتوانند به مقادیر حالت و رفتار برای همه متغیرهای یک شیء خاص دسترسی داشته باشند. کپسوله سازی می تواند برای پنهان کردن اعضاء داده و توابع یا روشهای مرتبط با کلاس یا شیء نمونه استفاده شود.
وراثت ، انتزاع و کپسوله سازی: تفاوت چیست؟
همراه با وراثت ، محصورسازی و انتزاع سه اصل اصلی برنامه نویسی شی گرا را تشکیل می دهند.
وراثت در برنامه نویسی چیست؟
وراثت مکانیزمی است که به یک کلاس اجازه میدهد تا خصوصیات کلاس دیگری را بدست آورد ، به همان نحوی که یک کودک ویژگیهای خاصی را از هر یک از والدین خود به ارث میبرد. ارث بردن به برنامه نویسان این امکان را میدهد تا یک کلاس جدید ایجاد کنند که از دادهها و روشهای یک کلاس موجود مجددا استفاده کند.
انتزاع در برنامه نویسی چیست؟
انتزاع زمانی اتفاق میافتد که یک برنامه نویس دادههای نامربوط را در مورد یک شی یا کلاس فوری پنهان میکند تا از پیچیدگی بکاهد و به کاربران کمک کند تا با برنامه موثرتر تعامل داشته باشند. اصطلاح انتزاع در مقابل محصور کردن میتواند برای توصیف روند پنهان کردن اطلاعات خاصی که در یک شی یا کلاس وجود دارد ، استفاده شود ، اما میتواند به خود شیء نیز اشاره داشته باشد.
انتزاع عبارت است از هر نهاد نامگذاری شده که شامل نقشه یا مجموعهای از دادهها و رفتارهای خاص برای استفاده خاص از موجودیت اصلی است.
در متن برنامه نویسی معروف تجزیه و تحلیل شی گرا ، گریدی بوچ مینویسد:
“انتزاع و کپسوله کردن مفاهیم مکمل هستند: انتزاع بر رفتار قابل مشاهده یک شی تمرکز می کند … محصورسازی بر پیاده سازی که منجر به این رفتار می شود تمرکز میکند.”
به بیان ساده ، یک انتزاع به نحوه ارائه یک شی و رفتارهای آن به کاربر مربوط میشود و کپسوله سازی روشی است که به ایجاد آن تجربه کمک میکند.
مثال از کپسوله سازی
به رابط تلفن همراه خود فکر کنید. چه از سیستم عامل Android یا iOS استفاده کنید ، مستقیماً با کدی که به تلفن شما امکان اتصال به اینترنت ، ارسال پیامک یا انجام یک بازی ویدیویی را میدهد ، تعامل ندارید. در عوض ، شما با کد از طریق یک رابط کاربری که برای ساده سازی تجربه شما طراحی شده است و دسترسی به توابع و روشهای مورد نیاز برای تکمیل یک کار را آسان تر میکند ، تعامل میکنید. در این مورد ، رابط کاربری از اجرای واقعی کد حذف میشود.
کانتینرها نرمافزارهای نسبتاً جدید هستند که میتوان از آنها برای بستهبندی یک قطعه کد با تمام کتابخانهها و سایر وابستگیهای مورد نیاز برای اجرا استفاده کرد. ظروف یک محیط مجازی محصور شده ایجاد میکنند که در آن میتوان یک برنامه را با استفاده از حداقل فضای ذخیرهسازی و قدرت محاسبات راهاندازی کرد. گروهی از ظروف میتوانند دسترسی به یک سیستم عامل واحد را به اشتراک بگذارند و منابع محاسباتی آن را از یک سختافزار واحد بدست آورند.
کپسوله سازی در کانتینرها و ماشینهای مجازی
کانتینرها به دلیل استفاده بسیار کارآمد از منابع محاسباتی ، به جایگزینی برای ماشینهای مجازی تبدیل شده است. مجازیسازی به چندین سیستم عامل و برنامههای کاربردی اجازه میدهد تا همزمان با هم منابع یک رایانه را اجرا کنند. کانتینرها در این مدل با به اشتراک گذاشتن یک سیستم عامل میزبان و نصب موتور زمان اجرای کانتینر بر روی سیستم عامل دستگاه میزبان بهبود یافتهاند.
رایانهای که از چهار ماشین مجازی استفاده میکند ، منابع اضافی را برای هر نمونه سیستم عامل که خرج میکند ، هزینه میکند ، در حالی که رایانهای با موتور کانتینریشن نصب شده میتواند تعداد مشابه برنامه را در یک سیستم عامل واحد اجرا کند.
در نتیجه ، چندین حافظه میتوانند با استفاده از ظرفیت محاسبه یک ماشین مجازی واحد کار کنند.
کانتینرها تنها یک نمونه از کپسوله سازی در کدگذاری هستند که در آن دادهها و روشها در یک بسته واحد جمع آوری میشوند.
چگونه اطلاعات از طریق برنامه نویسی کپسوله پوشانده میشود؟
همانطور که قبلاً اشاره کردیم ، کپسوله سازی در برنامه نویسی شی گرا به توسعهدهندگان اجازه میدهد تا دادهها و روشها را با هم گروهبندی کنند ، اما همچنین میتواند برای پنهان کردن دادههای حساس که نباید در معرض دید کاربران قرار گیرد ، مورد استفاده قرار گیرد. در زبان برنامه نویسی جاوا و بسیاری از زبانهای دیگر ، پنهان کردن اطلاعات با استفاده از روشهای getter و setter برای ویژگیهای دادهای که قابل خواندن هستند یا میتوانند توسط سایر کلاسها به روز شوند ، کنترل میشود.
کپسول در روشهای Getter و Setter
از متد getter برای بازیابی مقدار یک متغیر خاص در یک کلاس استفاده میشود. از متد setter برای تنظیم یا به روز رسانی مقدار یک متغیر خاص در یک کلاس استفاده میشود. برنامه نویسان میتوانند از اصلاح کنندههای دسترسی برای مشخص نمودن قابلیت مشاهده کلاسها و دادهها و روشهای آنها استفاده کنند. در زبان برنامه نویسی جاوا ، میتوانید از بین چهار نوع اصلاح کننده دسترسی انتخاب کنید:
خصوصی: وقتی اصلاح کننده دسترسی خصوصی روی یک ویژگی یا متدی اعمال میشود ، فقط با کد در همان کلاس قابل دسترسی است. در نتیجه ، کلاس شامل متدهای getter و setter است. این کلاسها میتوانند برای دسترسی به اطلاعات مربوط به ویژگی یا تغییر مقدار آن استفاده شوند. متغیرهایی که فقط از طریق تماسهای getter و setter قابل دسترسی هستند ، محصور شدهاند.
محافظت شده: یک متغیر یا روش محافظت شده میتواند با کد یک کلاس ، توسط همه کلاسهای یک بسته ، و توسط همه زیر کلاسهای یک بسته یا بستههای دیگر قابل دسترسی باشد.
عمومی: روشها ، ویژگیها و کلاسهای رمزگذاری شده با این اصلاح کننده دسترسی را میتوان در یک کلاس قرار داد. و در همه کلاسهای دیگر با کد ، مشاهده و به آنها دسترسی پیدا کرد.
بدون تعدیل کننده: وقتی متغیری فاقد اصلاح کننده دسترسی است ، میتوان آن را از یک کلاس یا از همه کلاسهای دیگر در یک بسته مشاهده یا نمایش داد.
مزایای کپسوله سازی
مخفی کردن اطلاعات ویژگی و روش با استفاده از کپسوله سازی در برنامه نویسی مزایای زیادی دارد. یکی این است که دیگر برنامه نویسان از نوشتن اسکریپت یا API هایی که از کد شما استفاده میکنند جلوگیری میکند. با استفاده از کپسوله کردن ، کاربران یک کلاس یاد نمیگیرند که چگونه یک کلاس دادههای خود را ذخیره می کند. توسعه دهنده میتواند نوع داده یک فیلد را بدون مجبور کردن توسعهدهندگان و کاربران کلاس به تغییر کد تغییر دهد.
کپسوله سازی در OOP و Sumo Logic به جلوگیری از حملات سایبری کمک می کند
سازمانهای فناوری اطلاعات میتوانند از کپسوله سازی به عنوان راهی برای محافظت از دادههای حساس و رعایت الزامات مربوط به امنیت و حریم خصوصی مربوط به صنعت مانند HIPAA و PCI DDS استفاده کنند.
فرآیند کپسوله سازی به تقسیمبندی دادهها کمک میکند. نیز با ارائه اطلاعاتی در مورد پیادهسازی کد به طور انحصاری بر اساس نیاز به کاربران ، آسیبذیری را محدود میکند.
روش Sumo Logic ، اندازهگیری امنیت سایبری موجود شما را با تشخیص تهدید پیشرفته و تجزیه و تحلیل امنیت با استفاده از هوش مصنوعی تکمیل میکند.
در این مقاله در مورد مفهوم کپسوله سازی در شی گرایی و ارتباط آن با سایر پارامترهای شی گرایی مطالبی آموختیم.
منبع
۱. کپسوله سازی در oop – ترجمه از انگلیسی
این مقاله برای من مفید بود
1+ 4 نفر این مقاله را پسندیده
یک نظر برای “مفهوم کپسوله سازی در شی گرایی”
با تشکر