+1 امتیاز
قبل در کامپیوتر و اینترنت توسط (1.1هزار امتیاز)

یکی از مفاهیم مهم در برنامه نویسی شئ گرا Encapsulation است، این مفهوم چه معنی دارد؟

1 پاسخ

+2 امتیاز
قبل توسط (1.3هزار امتیاز)
ویرایش شده قبل توسط

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

در هنگام طراحی یک شیء این مسئله باید مد نظر قرار دهید که دیگران چگونه می توانند از شیء شما استفاده کنند؟بهترین حالت به اینگونه است که تمامی برنامه هایی که از شیء استفاده می کنند بخوبی طراحی شده اند و تغییری نخواهند کرد.اما واقعیت چیز دیگری است.در شرایط واقعی هر برنامه ای دچار تغییر می شود و در یک محیط تیمی برنامه نویسان  زیادی در یک زمان از یک کد استفاده می کنند.بنابراین بهتر است شرایطی را که ممکن است خطایی در آن رخ دهد را در نظر بگیریم و این مسئله را مشخص کنیم که یک شیء چگونه باید مورد استفاده قرار گیرد.

بعنوان مثال همان شیء حساب بانکی را در نظر بگیرید که کدی از خارج از آن می تواند به یکی از فیلد های decimal Amount و یا string CustomerName  دسترسی پیدا داشته باشد.در لحظه ای که این کد نوشته می شود همه چیز درست است و مشکلی پیش نخواهد آمد.اما فرض کنید در مسیر توسعه برنامه این تصمیم گرفته شود که برای جلوگیری از تکرار داده بجای فیلد string CustomerName شناسه فرد(int CustomerID) مورد استفاده قرار گیرد.به این ترتیب وضعیت داخلی شیء در چرخه توسعه نرم افزار (development Cycle) دچار تغییر می گردد.مسلم است که چنین تغییری باعث اختلال در کد می گردد، چراکه این کد در ابتدا برای استفاده از CustomerName نوشته شده بود و این درحالی است که دیگر وضعیتی به این نام در شیء BankAccount وجود ندارد.بنابراین شما باید در تمامی برنامه بدنبال کدهایی بگردید که از این وضعیت استفاده می کنند و یکی یکی آنها را تغییر دهید.

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

سری به این لینک بزنید.

قبل توسط (1.3هزار امتیاز)
پاسخ ویرایش شد ....
قبل توسط (1.1هزار امتیاز)
با تشکر از شما

سوالات مشابه

0 امتیاز
2 پاسخ 982 بازدید
+2 امتیاز
2 پاسخ 3.2هزار بازدید
0 امتیاز
1 پاسخ 1.2هزار بازدید
+1 امتیاز
1 پاسخ 2.8هزار بازدید
0 امتیاز
3 پاسخ 2.8هزار بازدید
+1 امتیاز
1 پاسخ 4.3هزار بازدید
+2 امتیاز
2 پاسخ 1.7هزار بازدید
+1 امتیاز
3 پاسخ 2.2هزار بازدید
...