آشنایی با اینترفیس در برنامه نویسی دارت
اینترفیس Interface یکی از مفاهیم مهم و پر کاربرد در برنامه نویسی می باشند که به عنوان یک توسعه دهنده ضروری هست با آن اشنا باشید.
هدف از تعر یف اینترفیس مشخص کردن رفتارهایی است که یک کلاس می تواند داشته باشد. به بیان دیگر، در یک اینترفیس با استفاده از متدهایی که تعریف می کنیم رفتارهایی را مشخص می کنیم، که یک کلاس می تواند داشته باشد و پیاده سازي این رفتارها را در کلاس هایی که از آن استفاده میکنند، انجام میدهیم . این کار باعث می شود رفتارهاي یکسانی را در کلاس هاي مختلف قرار دهیم؛ اما پیاده سازي آن ها در هر کلاس تفاوت داشته باشد.
در بحث شی گرایی ما یک کلاس ایجاد میکنیم و داخل این کلاس برحسب نیاز چندین متد میسازیم حال با ارث بری از این کلاس به متد ها دسترسی داریم و کاری که آنها انجام میدهند اجرا می شود.
در اینترفیس ها ما متدهایی که لازم داریم را تعریف میکنیم ولی هیچ پیاده سازی انجام نمیدهیم. در واقع فقط نوع, نام و پارامترهای ورودی متد را مشخص میکنیم. پیاده سازی این متدها بر عهده کلاسی است که از این اینترفیس استفاده میکند.
حال همانطور که از کلاس های مختلف ارث بری میکردیم همینکار را با اینترفیس انجام می دهیم ولی بجای ارث بری از کلمه implements استفاده می کنیم.
هرکلاسی که یک اینترفیس را implements می کند باید تمام متد های آن اینترفیس را بازنویسی کند پیاده سازی را انجام دهد.
کلاس های 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 قرارگیرد؛ در غیر این صورت برنامه دچار خطا می شود.
مطالب زیر را حتما مطالعه کنید
آشنایی با مفهوم Mixin در زبان برنامه نویسی دارت
آشنایی با الگوی طراحی Singleton
کار با تاریخ در دارت با کلاس DateTime
آموزش شی گرایی در زبان دارت: ارث بری
شی گرایی در زبان دارت: مفهوم کلاس
آموزش کار با لیست و آرایه در زبان برنامه نویسی دارت Dart
2 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
خیلی مختصر و کوتاه توضیح دادید .
ghashang tozih dadin va ja oftad