مفهوم کپسوله سازی در شی گرایی و کارایی آن

کپسوله سازی در برنامه نویسی شی گرا به توسعه‌دهندگان اجازه می‌دهد تا داده‌ها و روش‌ها را با هم گروه‌بندی کنند، اما هم‌چنین می‌تواند برای پنهان کردن داده‌های حساس که نباید در معرض دید کاربران قرار گیرد، استفاده شود.

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

 

در اصل هدف برنامه نویسی شی گرا (OOP)، پیاده سازی موجودیت یا شی های دنیای واقعی در برنامه نویسی است. Encapsulation یکی از اصول شی گرایی است که به معنای قرار دادن ویژگی ها، متد ها و داده ها در یک واحد برای افزایش امنیت برنامه است. در کپسوله سازی هر چیزی که مربوط به یک واحد باشد دسته بندی شده است و دسترسی به داده ها بر اساس نیاز انجام می شود.

 

در encapsulation (کپسوله سازی) متد های هر class (کلاس) تنها به داده های همان کلاس دسترسی دارند و همچنین از متد های کلاس دیگر نمی توان به داده های کلاسی که کپسوله شده است، دسترسی داشت. کپسوله سازی را می توان Data Hiding یا پنهان سازی داده ها نیز معنی کرد.

در برنامه نویسی به زبان سی شارپ (C#) وقتی بخواهیم از Encapsulation استفاده کنیم، کلمه کلیدی Private را به کار می بریم. یعنی یک متغیر اگر به صورت Private تعریف شود خارج از کلاس آن نمی توان از متغیر استفاده کرد، مگر اینکه توابع Get() و Set() برای آن تعریف شده باشد. تابع Get() برای استفاده و دسترسی به مقدار متغیر است و تابع Set() برای مقداردهی به متغیر است.

 

در اینجا شاید سوالاتی پیش بیاید که چرا باید کد را از خودم پنهان کنم؟ و یا چرا نباید بدانم درون تابع یا کلاس چه اتفاقی می افتد؟

برای درک بهتر مسائل با یک مثال پیش می رویم:

شاید شما تنها developer برنامه نباشید و کار گروهی باشد که اکثر مواقع هم همین طور است. برای اینکه دسترسی به داده ها کنترل شده باشد و همچنین روش برنامه نویسی شما برای فرد دیگری فاش نشود، بهتر است از encapsulation استفاده شود.

 

فرض کنید شما یک پیام از طریق تلفن خود ارسال می کنید، چه اتفاقی می افتد؟ متن و گیرنده خود را به تلفن می دهید و پیام ارسال می شود. اینکه درون تلفن چه اتفاقاتی می افتد و چه توابعی صدا زده می شوند اصلا مهم نیست. مهم این است که پیام شما ارسال شود.

 

یکی از ویژگی های مهم کپسوله سازی، انعطاف پذیری و قابلیت گسترش بالای برنامه است. وقتی از encapsulation استفاده می کنید، هر قسمت برنامه به صورت جدا است و به راحتی می توان بدون ایجاد مشکل برنامه را گسترش داد. همچنین رفع خطا ساده تر می شود چرا که دسترسی داده ها و کلاس ها به هم محدود است و اگر خطایی رخ دهد، کاملا مشخص است که مشکل از کجاست. از دیگر فواید Encapsulation قابلیت نگه داری برنامه یا Maintenance است. حتی زمانی که از کپسوله سازی استفاده می کنید، می توانید از کد های خود دوباره در برنامه های دیگر استفاده کنید که این ویژگی خوب را Reusability می نامند.

 

همانطور که می دانید داده ها یک عنصر حیاتی در برنامه نویسی است و حفاظت از آن ها بسیار مهم است. همچنین نیاز است که امنیت برنامه خود را بالا ببریم و با استفاده از encapsulation یک لایه امنیتی به برنامه اضافه کنیم. امید وارم از این پست اطلاعات مفیدی دریافت کرده باشید. منتظر مفاهیم دیگری از برنامه نویسی شی گرا (Object Oriented Programming) باشید.

نظرات ارزشمند خود را با ما به اشتراک بگذارید

نظرات :
هنوز نظری ثبت نشده است.