زهرا تقی پور
زهرا تقی پور
خواندن ۲ دقیقه·۱ سال پیش

Why OOP is good?!

سلام به همه *-*

دومین مقاله خود را با نام و یادی از OOP آغاز می کنیم. OOP منتقدان زیادی داره. اما به هر حال یکی از پارادایم های محبوب به حساب میاد پس قطعا یه چیزایی در خودش داشته:) که قراره تو این مقاله مختصرا بهش بپردازم.

مزیت های استفاده از OOP

1.troubleshooting

به دلیل ماهیت modular بودن oop، پیدا کردن خطاها راحت تره. ینی وقتی به مشکلی برمی خوریم نیاز نیست خط به خط کد رو بررسی کنیم. می تونیم از خودمون بپرسیم خب الان مشکل از کدوم ابجکته؟؟ و بریم همون جا دنبالش بگردیم. چون object ها self-contained هستند. هر آبجکت دیتاها و رفتارهای خودشو داره و کاری به بقیه نداره.

2. ‏Reuse

یکی دیگه از قابلیت هایی که oop به ما میده امکان استفاده مجدد هست که به لطف inheritance اتفاق افتاده. هر جا که دیتا و منطق مشترکی بین دو یا چند آبجکت می بینیم می تونیم اون ها رو در قالب یک کلاس قرار بدیم و ازش ارث بری کنیم. مثلا مدل های مختلفی از car توی برنامه مون داریم که هر کدوم آپشن های مخصوص به خودشو داره اما همه car ها متد drive رو دارن پس نیازی نیست برای هر کدوم جداگانه این متد تعریف بشه. متد drive رو فقط یک بار توی کلاس پدر تعریف می کنیم.

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

3.‏ ‏Flexibility

یکی از مهم ترین مزیت هایی که oop داره flexibility هست که این رو مدیون polymorphism هست. خیلی ساده بگم مثلا می تونیم یه آبجکت پدر رو با بچه هاش جا به جا کنیم. ینی آبجکت از نوع پدره اما موقع ساخت از کلاس بچه اش می سازیمش. مثلا توی همون مثال car، آبجکت میتونه از هر کدوم از کلاس های بچه باشه و بعدا اگه کلاس جدیدی هم اضافه بشه نیازی نیست کدمون دست بخوره کافیه آبجکتمون رو از اون نوع جدید بسازیم و فانکشن هایی که توی کلاس پدر هستن با همه این بچه ها به درستی کار می کنن. مثلا متد drive هم با RaceCar کار میکنه هم با Limousine !

4. ‏Effective problem solving

توی طراحی الگوریتم یه روشی داشتم به نام divide and conquer. میگه مسئله رو بشکن به زیرمسئله های کوچیک تر که حلش آسون تره و از ادغام کردن جواب هاشون به حل مسئله اصلی میرسی. oop هم دقیقا داره همین کار رو میکنه ما مسئله مون رو میشکنیم به کلاس ها و هر کلاسی دغدغه ها و مسائل خودشو داره و خودش حلشون میکنه و از همکاری این کلاس ها با هم مسائل پیچیده تر حل میشن...


منابع:

  1. https://www.roberthalf.com/us/en/insights/career-development/4-advantages-of-object-oriented-programming
  2. https://www.educba.com/advantages-of-oop/
  3. https://myloview.com/poster-flat-design-with-people-oop-object-oriented-programming-acronym-no-FCD9EB1






oopobject oriented programming
شاید از این پست‌ها خوشتان بیاید