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