محسن مهری
4 سال پیش توسط محسن مهری مطرح شد
1 پاسخ

تفاوت های trait و abstract class

سلام - میشه در مورد تفاوت این دو یکم اطلاعات به من بدین،(لطفا هر کی نظر و تجربه شخصی اش رو بنویسه)
من میخام پروژه ام رو طوری پیاده سازی کنم که تا جای ممکن قوانین SOLID رو نهی نکنم.
رسیدم به مرحله ای که باید یکی از این دو در جاهای مختلف استفاده کنم، اما واقعا نمیدونم کدومشون رو باید استفاده کنم
.
@hesammousavi
@ali.bayat


ثبت پرسش جدید
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 4 سال پیش مطرح شد
2

ببین به شکل ساده:

  • کلاس ابسترکت، کلاسی هست که قابل instantiate شدن نیست، و ساب کلاس هاش میتونند Instantiate بشند. در یه سری موارد شباهت هایی به اینترفیس ها داره و در عین حال متفاوت هم هست.
  • از طرفی یه تریت، مکانیزمی هست برای استفاده مجدد از کد در زبان هایی که وراثت چندگانه ندارند مثل PHP.

پس بازه استفاده های این ۲ مورد بر اساس ساختار کد میتونه متفاوت باشه.

حالا شما اگر بخواهی از قوانین SOLID پیروی کنی..
یک راه ساده اش اینه که از الگوهای طراحی استفاده کنی، الگوهای طراحی مختلف رو اینجوری در نظر بگیر: راه حل های ثابت شده برای حل مشکلات رایج در برنامه نویسی شئ‌گرا که در این بین قوانین SOLID هم رعایت میشند

راه دیگه اش (کمی مشکلتره) اینکه شما کدهایی که نوشتی رو خودت کاملا بررسی کنی، مثلا اگر ۲ تا کلاس در ۲ فایل مختلف داری.. باید چک کنی ببینی آیا هر ۵ قاعده SOLID در هر ۲ فایل و در خود اپلیکیشنت رعایت شده یا نه؟


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام