FlutterZiero
FlutterZiero
خواندن ۲ دقیقه·۱ سال پیش

مقایسه Mixin و Interface در زبان برنامه نویسی دارت

در برنامه‌نویسی دارت ، Mixins و interfaces دو مفهوم مهم هستند که برای تعریف رفتار کلاس‌ها مورد استفاده قرار می‌گیرند. اگرچه هر دوی آن‌ها برای تعریف یک قرارداد بین کلاس‌ها به کار می‌روند، اما در پیاده‌سازی و نحوه استفاده از یکدیگر تفاوت دارند.




اینترفیس Interface


در برنامه‌نویسی Dart، یک interface یک طرح کلی برای یک کلاس است که مجموعه‌ای از متدها و ویژگی‌های لازم برای پیاده‌سازی در آن کلاس را مشخص می‌کند. یک interface با استفاده از کلمه کلیدی abstract تعریف می‌شود. یک کلاس می‌تواند چندین interface را پیاده‌سازی کند و باید تمامی متدها و ویژگی‌های تعریف‌شده در هر interface را به طور کامل پیاده‌سازی نماید. از interfaces برای تعریف یک قرارداد بین کلاس‌ها استفاده می‌شود و آن‌ها زمانی مفید هستند که بخواهید مجموعه‌ای مشترک از متدها و ویژگی‌ها را تعریف کنید که کلاس‌های متعددی بتوانند آن‌ها را پیاده‌سازی نمایند.



میکسین Mixin


از سوی دیگر، یک Mixin روشی برای استفاده مجدد از کد در کلاس‌های متعدد بدون بهره‌گیری از وراثت است. یک Mixin کلاسی است که شامل مجموعه‌ای از متدها و ویژگی‌ها بوده که می‌توان آن‌ها را به کلاسی دیگر اضافه کرد. در Dart، یک Mixin با استفاده از کلمه کلیدی with تعریف می‌شود. زمانی که یک کلاس از یک Mixin استفاده می‌کند، متدها و ویژگی‌های تعریف‌شده در آن Mixin را ارث می‌برد، اما سوپرکلاس Mixin را به ارث نمی‌برد. Mixinها زمانی مفید هستند که بخواهید بدون ایجاد یک ساب‌کلاس جدید، قابلیتی را به کلاس اضافه کنید.



به طور خلاصه


در حالی که از interfaces برای تعریف یک قرارداد بین کلاس‌ها استفاده می‌شود، mixins برای اضافه کردن قابلیت‌ها به یک کلاس به کار می‌روند. Interfaces مجموعه‌ای از متدها و ویژگی‌های لازم برای پیاده‌سازی در کلاس را مشخص می‌کنند، در حالی که mixins مجموعه‌ای از متدها و ویژگی‌هایی را تعریف می‌نمایند که می‌توان آن‌ها را به یک کلاس اضافه کرد. هر دوی این مفاهیم در برنامه‌نویسی Dart مهم هستند و برای ایجاد کدهای قابل استفاده مجدد و نگهداری آسان مورد استفاده قرار می‌گیرند.


هنگام تصمیم‌گیری بین استفاده از mixin یا interface، موارد زیر را در نظر داشته باشید:

  • از interfaces زمانی استفاده کنید که می‌خواهید یک قرارداد بین کلاس‌ها تعریف کنید.
  • از mixins زمانی استفاده کنید که می‌خواهید بدون ایجاد ساب‌کلاس جدید، قابلیتی را به کلاس اضافه نمایید.


mixininterfacedartflutterinterface vs abstract
Mohammad Amin Afrazandeh
شاید از این پست‌ها خوشتان بیاید