آشنایی با موضوع

کپسوله سازی(به انگلیسی: Encapsulation )در برنامه نویسی شیء گرا،بهمراه هر شیء دو مفهموم نیز بیان می شود، رفتار (behavior) و وضعیت (state). وضعیت یک شیء در حقیقت به داده یا اطلاعاتی گفته می شود که در آن شیء نگهداری می شود. بعنوان مثال حساب یک فرد یک شیء می باشد که وضعیت آن می تواند نام فرد و مقدار موجودی آن باشد. رفتار یک شیء نیز اغلب به متدهای تعریف شده در آن شیء اطلاق می شود. بعنوان مثال می توانیم برای شیء حساب بانکی رفتار هایی از قبیل تعیین میزان بدهی فرد، اعللام موجودی او و نیز باز کردن حساب جدید را داشته باشیم. برای تعریف یک شیء مشخص کردن این دو مفهوم کافی بنظر می رسد، اما مسائل دیگری نیز وجود دارند که باید در نظر گرفته شوند. معمولا برای کپسوله سازی (encapsulation) وضعیت یک شیء از خصوصیات استفاده می کنند. در مثال بالا مشاهده می کنید که چگونه نام مشتری در داخل فیلد m_name نگهداری می شود در حالی که این وضعیت توسط خاصیت CustomerName کپسوله شده است. از آنجایی که m_name از نوع private تعریف شده است، از خارج از کلاس BankAccountPrivate نمی توان مستقیما به آن دسترسی پیدا نمود. بلکه برای دستیابی به آن باید از خاصیت CustomerName استفاده کرد. با این روش شما می توانید پیاده سازی m_name را هر آنگونه که می خواهید تغییر دهید. بعنوان مثال چنانچه شما بخواهید آن یک ID از نوع int باشد و خاصیت CustomerName بر روی داده ها جستجویی را انجام داده و نام مشتری را بازگرداند، این تغییر ار می توانید بدون نگرانی از اختلال در دسترسی سایر کدهای خارج کلاس انجام دهید. لازم به ذکر است که چنین تغییراتی در مراحل نگهداری و توسعه سیستم اجتناب ناپذیر است و با این روش می توان از اثرات نا مطلوب و اختلال های ممکن در کد های خارجی جلوگیری کرد. بر اساس مفهوم دوم کپسوله سازی می‌توان برخی از عناصر (فیلدها) و توابع (متدها) را از خارج از قلمرو تعریف کلاس پنهان نمود به طوری که تغییر مقدار و دسترسی به فیلدها و استفاده از متدهای یک شئ تنها توسط خود شئ امکان‌پذیر باشد. به این ترتیب برنامه نویس می‌تواند بدون درگیر شدن با اعمال و رفتار داخلی و پیچیدگی‌های این اعمال در کلاس، به اهداف خود دست پیدا کند و در عین حال از دسترسی غیرمجاز به مقادیر و اعمال خصوصی کلاس نیز جلوگیری به عمل می‌آید. گفتنی است محدودسازی سطح دسترسی در زبان‌های برنامه‌نویسی معمولا توسط تعدادی کلمه کلیدی (نظیر Private و Public) انجام می‌شود که به تغییردهنده‌های دسترسی (Access Modifier) موسوم می‌باشند. به منظور درک بهتر مفهوم کپسوله سازی، کلاسی به نام Circle دایره را در نظر بگیرید. این کلاس علاوه بر تابع سازنده‌ای که مختصات مرکز دایره و شعاع آن را به عنوان متغیرهای نمونه دریافت می‌کند و عددی بودن مقادیر دریافتی را بررسی می‌کند از قرار گرفتن دایره در محیط نمایان صفحه نیز اطمینان حاصل می‌کند و متدهایی برای محاسبه و برگرداندن محیط و مساحت دایره و رسم آن (قابل دسترس در بیرون از کلاس) در اختیار برنامه نویس قرار می‌دهد. با اینحال امکان تغییر مستقیم داده‌های مربوط به مرکز دایره و شعاع آن در خارج از کلاس ضروری به نظر نمی‌رسد. به این ترتیب با ایجاد شیئی از نوع این کلاس می‌توان به تمامی اعمال مورد نیاز بدون درگیری با جزئیات و پیچیدگی‌های اضافی آن دسترسی داشت و در عین حال از دستکاری و مقداردهی غیرمجاز به متغیرهای کلاس نیز اطمینان حاصل می‌شودکپسوله سازی، همان طور که از نامش پیداست به معنای دسته بندی و جمع کردن یک مجموعه از ویژگی ها و رفتار ها در قالب یک مجموعه واحد می باشد. اما این تمام ماجرا نیست. جمع کردن این موارد در کنار هم به تنهایی مفهوم کپسوله سازی را نمی دهد. نکته ای که این مفهوم را تکمیل می کند، نحوه دسترسی و دستیابی به اعضای داخلی این مجموعه است. یک شی یا یک کلاس به عنوان یک کپسول، سعی می کند تمام ارتباطات با اعضای داخلی خود را محدود کند و در واقع جهان بیرون از مجموعه از ارتباطات و اعضای داخل این مجموعه خبر نداشته باشند (به این مهم Information Hiding می گویند). یک کپسول تنها چیزهایی را به دنیایی بیرون ارائه می دهد که واقعا نیاز باشد. توجه داشته باشید در دنیای برنامه نویسی منظور از جهان بیرون، لزوما استفاده کنندگان از نرم افزار نمی باشد. مثلا وقتی یک کامپوننت (Component) را کپسوله می کنیم، استفاده کنندگان از این کامپوننت سایر کامپوننت ها و کلاس های دیگر می باشند و نه کاربر نهایی. برای اجرای کپسوله سازی یا Encapsulation از تغییردهنده‌های دسترسی یا (Access Modifier) استفاده می‌کنیم. این تغییردهنده‌ها معمولا روی اعضای یک کلاس تاثیر می‌گذارند. زبان برنامه‌نویسی از چندین تغییردهنده دسترسی پشتیبانی می‌کند که به شرح ذیل می‌باشد: • دسترسی Public عمومی • دسترسی Private خصوصی • دسترسی Protected محافظت‌شده
در این صفحه تعداد 891 مقاله تخصصی درباره کپسوله سازی که در نشریه های معتبر علمی و پایگاه ساینس دایرکت (Science Direct) منتشر شده، نمایش داده شده است. برخی از این مقالات، پیش تر به زبان فارسی ترجمه شده اند که با مراجعه به هر یک از آنها، می توانید متن کامل مقاله انگلیسی همراه با ترجمه فارسی آن را دریافت فرمایید.
در صورتی که مقاله مورد نظر شما هنوز به فارسی ترجمه نشده باشد، مترجمان با تجربه ما آمادگی دارند آن را در اسرع وقت برای شما ترجمه نمایند.
مقالات انگلیسی کپسوله سازی (ترجمه نشده)
مقالات زیر هنوز به فارسی ترجمه نشده اند.
در صورتی که به ترجمه آماده هر یک از مقالات زیر نیاز داشته باشید، می توانید سفارش دهید تا مترجمان با تجربه این مجموعه در اسرع وقت آن را برای شما ترجمه نمایند.
Keywords:
RA, rumenic acid; c.m.c., critical micellar concentration; CD, cyclodextrin; HPβCD, hydroxypropyl-beta-cyclodextrin; MβCD, methyl-beta-cyclodextrinRumenic acid; Cyclodextrin; Conjugated linoleic acid; Critical micellar concentration; Encapsulation
Keywords:
Burdock leaf; Chlorogenic acid; Encapsulation; In vitro release; Thermal treatments; Release kineticsCGA, chlorogenic acid; LHB, liquid-core hydrogel beads; SA, sodium alginate; M-block, β-d-mannuronic acid unit of SA; G-blocks, α-l-guluronic acid unit of