در OOP، برای افزودن قابلیتهای مشترک (مثل تبدیل به JSON یا لاگگیری) به کلاسهای نامرتبط، ساخت کلاس پایه مشترک باعث پیچیدگی میشود.
میکسین کلاسی معمولی در پایتون است که رفتار تکمنظوره و قابل استفاده مجدد را بدون ایجاد رابطه ارثبری سختگیرانه (Is-a) ارائه میدهد.
💡 چرا به جای ارثبری از Mixin استفاده کنیم؟
1️⃣ رعایت اصل DRY: حذف کدهای تکراری.
2️⃣ ترکیب به جای ارثبری: ترکیب رفتارهای مستقل به جای درختهای عمیق و شکننده.
3️⃣ جلوگیری از مشکل Gorilla/Jungle: ارثبری فقط یک موز، نه کل جنگل.
ویژگیهای یک Mixin استاندارد:
▫️نامگذاری مشخص: معمولاً پسوند Mixin دارند (مثل JsonSerializableMixin).در پست بعدی، نحوه پیادهسازی و نکات فنی MRO در میکسینها را بررسی میکنیم.
▫️بدون وضعیت (Stateless): فاقد متد init یا ویژگیهای نمونه اختصاصی.
▫️تکمنظوره: مسئولیت خاص واحد.
▫️مستقل: مستقیماً از آنها شیء ساخته نمیشود.
