زبان دارت Dart

آشنایی با اینترفیس در برنامه نویسی دارت

اینترفیس Interface یکی از مفاهیم مهم و پر کاربرد در برنامه نویسی می باشند که به عنوان یک توسعه دهنده ضروری هست با آن اشنا باشید.

هدف از تعر یف اینترفیس مشخص کردن رفتارهایی است که یک کلاس می تواند داشته باشد.
به بیان دیگر، در یک اینترفیس با استفاده از متدهایی که تعریف می کنیم رفتارهایی را مشخص می کنیم، که یک کلاس می تواند داشته باشد و پیاده سازي این رفتارها را در کلاس هایی که از آن استفاده میکنند، انجام میدهیم.
این کار باعث می شود رفتارهاي یکسانی را در کلاس هاي مختلف قرار دهیم؛ اما پیاده سازي آن ها در هر کلاس تفاوت داشته باشد.

آشنایی با مفهوم اینترفیس در برنامه نویسی

اینترفیس (Interface) در برنامه‌نویسی یک قرارداد (Contract) است که مشخص می‌کند کلاس‌ها یا اشیاء چه متد‌ها (توابع) و ویژگی‌ها (متغیرها) را باید پیاده‌سازی کنند.

به عبارت دیگر، اینترفیس تعیین می‌کند که یک کلاس چه عملکردها و ویژگی‌ها را باید دارا باشد، اما جزئیات اجرای آن‌ها را مشخص نمی‌کند.

این به برنامه‌نویس‌ها امکان می‌دهد که چندین کلاس مختلف با امکانات مشابه اما پیاده‌سازی‌های متفاوت ایجاد کنند.

در بحث شی گرایی در زبان برنامه نویسی دارت ما یک کلاس ایجاد میکنیم و داخل این کلاس برحسب نیاز چندین متد میسازیم حال با ارث بری از این کلاس به متد ها دسترسی داریم و کاری که آنها انجام میدهند اجرا می شود.

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

فلاتر چیست؟

حال همانطور که از کلاس های مختلف ارث بری میکردیم همینکار را با اینترفیس انجام می دهیم ولی بجای ارث بری از کلمه implements استفاده می کنیم.

هرکلاسی که یک اینترفیس را implements می کند باید تمام متد های آن اینترفیس را بازنویسی کند پیاده سازی را انجام دهد.

چرا از اینترفیس باید استفاده کرد؟

در زبان‌های برنامه‌نویسی شی‌گرا مانند جاوا (Java)، C# و دارت (Dart)، اینترفیس یک مکانیزم مهم برای پله‌کاری (Polymorphism) استفاده می‌شود. با استفاده از اینترفیس، می‌توانیم گروهی از کلاس‌ها را تعریف کنیم که ویژگی‌ها و رفتارهای مشترکی را دارند. سپس می‌توانیم به جای استفاده مستقیم از یک کلاس خاص، از اینترفیس به عنوان نقطه‌ی ورود به ارتباط با اشیاء استفاده کنیم.

مزایای استفاده از اینترفیس عبارتند از:

  1. جدا بودن عقاید (Decoupling): اینترفیس جدا بودن عقاید را ترویج می‌دهد. کدی که بر روی اینترفیس‌ها متکی است، به کدی که پیاده‌سازی را انجام می‌دهد، وابسته نخواهد بود.
    این باعث می‌شود که کد به صورت مستقل از پیاده‌سازی‌های واقعی کار کند.
  2. قابلیت تغییرات و انعطاف‌پذیری: با استفاده از اینترفیس می‌توانیم پیاده‌سازی‌های مختلف را جایگزین کنیم بدون اینکه تغییرات زیادی در کد اصلی اعمال شود. این انعطاف‌پذیری کد را برای تغییرات آینده آماده می‌کند.
  3. محدود کردن کدهای تکراری: اگر چندین کلاس ویژگی‌های مشابهی دارند، می‌توانیم این ویژگی‌ها را در یک اینترفیس تعریف کنیم و کدهای تکراری را کاهش دهیم.
  4. پله‌کاری و چندریختی (Polymorphism): استفاده از اینترفیس امکان استفاده از چندین کلاس مختلف با امکانات مشابه را به صورت چندریختی فراهم می‌کند.
    این باعث می‌شود که کد بتواند به صورت دینامیک و بر اساس نیاز، با اشیاء مختلف ارتباط برقرار کند.

کلاس های Abstract

در زبان دارت برخلاف زبان های دیگر مثل جاوا یا C# مفهومی به نام اینترفیس به شکل مستقیم وجود ندارد.. به همین دلیل برای پیاده سازی این بخش از کلاس های Abstract استفاده میکنیم که عملکردی مشابه اینترفیس ها دقیقا دارند.

کلاس های Abstract را هم میتوانیم implement کنیم و هم از قابلیت ارث بری آنها استفاده کنیم.

 abstract class IsSilly {
  void makePeopleLaugh();
}

class Clown implements IsSilly {
  void makePeopleLaugh() {
  print("Hello")
  }
}

در کلاس بالا یک کلاس به نام IsSilly از نوع abstract ایجاد کردیم که یک متد به نام makePeopleLaugh دارد.

در کلاس بعدی به نام Clown از این کلاس به شکل اینترفیس استفاده کردیم و آن را implements کردیم, در این حالت باید متد makePeopleLaugh را بازنویسی کنیم تا مشخص کنیم که این متد چه عملیاتی را نیاز دارد تا انجام دهد. در بدنه این متد یک دستور پرینت قرار داده ایم.

برخلاف ارث بری که هر کلاس فقط از یک کلاس میتواند ارث بری کند, در اینترفیس ها محدودیتی از نظر تعداد وجود ندارد.

نکته اي که باید به آن توجه کنید این است که کلمه extends حتما باید قبل از کلمه implements قرارگیرد؛ در غیر این صورت برنامه دچار خطا می شود.

Hesam

View Comments

Recent Posts

آموزش افزایش سرعت اجرای وب اپلیکیشن های فلاتر

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

3 هفته ago

آموزش جامع انتشار اپلیکیشن اندروید و فلاتر در فروشگاه گوگل پلی Google play

به عنوان یک برنامه نویس فلاتر یا اندروید بعد از اتمام پروسه طراحی اپلیکیشن نیاز…

2 ماه ago

دانلود سورس کد رابط کاربری اپلیکیشن فلاتر پروژه پادکست

طراحی رابط کاربری اپلیکیشن پادکست خود را با استفاده از این کیت توسعه UI/UX فلاتر…

2 ماه ago

فایربیس چیست؟ معرفی سرویس ابری Firebase و کاربردهای آن

فایربیس، پلتفرمی قدرتمند از شرکت گوگل برای توسعه و مدیریت برنامه‌های موبایل و وب است.…

2 ماه ago

آموزش پیاده سازی Method Channel در فلاتر + فیلم

فلاتر یک فریم ورک برنامه نویسی چندسکویی است که این امکان را برای برنامه نویس…

3 ماه ago

بهترین منابع برای آموزش رایگان برنامه نویسی فلاتر در سال 2024

فلاتر یک فریم ورک برنامه نویسی چندسکویی است که به وسیله آن میتوانید برای سیستم…

3 ماه ago