درمورد مفهوم abstraction

پرسیده شده
فعالیت 1133 روز پیش
دیده شده 447 بار
0

سلام 

 

امکانش هست یک مثال ساده از اصل abstraction بیان کنید کمی واسم مبهمه. با تشکر

فایل پیوست

علی.
علی.

7 فروردین 00

1
حذف شده

سلام و احترام

فرض کنید شما میخواید به چندین روش نوتیفیکشن توی اپلیکیشنتون ارسال کنید مثل sms, email, whatsapp, telegram و..

فکر میکنید چی بین تمامی این نوتیفیکیشن ها مشترکه؟

متد send بین تمامی این موارد مشترکه چون ما مطمئنیم که قراره یه پیامی رو ارسال کنن، ما میایم این مورد رو یه قرار داد میکنیم ینی اینکه ما میگیم هر کسی که میخواد بیاد وظیفه ارسال نوتیفیکین رو داشته باشد باید داخل خودش یه متد send داشته باشه تا نوتیفیکشن خودشو به روش خودش ارسال کنه و من کاری ندارم دقیقا روش اون چی میخواد باشه، برای من مهمه که یه نوتیفیکشین ارسال بشه

قطعا روشی که ما با sms اسال میکنیم با email متفاوته پس این متد رو همون طور که بهتون گفتم یه قرارداد میکنیم بین همه کلاس های نوتیفیکشن تا هر کدومشون داخل کلاس خودشو به روش خودشون این متد رو پیاده سازی کنن

 

فایل پیوست

امیر صالحی

توسط

امیر صالحی

7 فروردین 00

حذف شده
ممنون از پاسختون؛ درواقع اصل انتزاع بیانگر این موضوعه که برای ایجاد یک کلاس پدر بهتره به جای یک کلاس معمولی از یک کلاس abstract استفاده کنیم چون برخلاف کلاس های عادی میشه تو یک کلاس abstract متدی تعریف کنیم که بدنه نداره. درواقع این اصل یجورایی به پیاده سازی بهتر polymorphism کمک میکنه. درست متوجه شدم؟
علی.

8 فروردین 00

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

8 فروردین 00

0
حذف شده

با سلام 

در تکمیل صحبت های جناب صالحی؛ من یک مثال از دنیای واقعی براتون میزنم که بهتر درک کنید موضوع رو.

 

همه ما شنیدیم که میگن به دیگران خوبی کنید.

خوب این خوبی کردن میتونه به چندین روش انجام بشه 

 

 

ی نفر دست یک شخص میان سال رو میگیره از خیابون رد میکنه

ی نفر برای بچه های یک خانواده کم بضاعت تبلت میخره 

ی نفر هم کیف پولی رو که پیدا میکنه به صاحبش برمیگردونه

 

 

تو این مثال ها؛ هر 3 نفر دارن خوبی میکنن ولی به روش های مختلف. 

و حالا باتوجه به صحبت جناب صالحی؛ ما میایم این خوبی کردن رو یک  قرار داد میکنیم

و حالا هرکسی به هر روشی که خواست اینکار رو انجام بده.

 

فایل پیوست

amir tavakolian

توسط

amir tavakolian

7 فروردین 00

0
حذف شده

ممنون از پاسختون

 

یعنی از اصل انتزاع صرفا برای وضع یه سری قانون استفاده میشه؟

 

----------------------------------------------------------------------------------------------------------------------

 

Abstraction is one of the key concepts of object-oriented programming (OOP) languages. Its main goal is to handle complexity by hiding unnecessary details from the user.

 

طبق متن بالا هدف از انتزاع اینکه جزئیات غیر ضروری رو مخفی سازی کنیم که این یه جورایی به اصل کپسوله سازی هم مربوط میشه.

 

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

 

طبق متن پایین انتزاع به جلوگیری از نوشتن کد تکراری هم کمک میکنه و غیر منطقی هم نیست!

 

Abstraction also helps with the Don't Repeat Yourself principle. By taking what a group of objects have in common and abstracting it, we can help prevent redundant code in each object which in turn creates more maintainable code.

 

و من هنوز نتونسم به یک جمع بندی درست از اصل Abstraction برسم!

فایل پیوست

علی.

توسط

علی.

8 فروردین 00