چند اینترفیس (Multiple Interfaces)
گاهی یک کلاس باید چند رفتار مختلف داشته باشد. مثلاً یک ربات می تواند هم حرف بزند و هم حرکت کند. در C# برای این کار از چند اینترفیس (Multiple Interfaces) استفاده می کنیم.
استفاده از چند اینترفیس
برای پیاده سازی چند اینترفیس، آن ها را با کاما (,) جدا کن. یعنی کلاس باید همه متدهای آن اینترفیس ها را بسازد.
interface IFirstInterface
{
void myMethod();
}
interface ISecondInterface
{
void myOtherMethod();
}
// پیاده سازی دو اینترفیس در یک کلاس
class DemoClass : IFirstInterface, ISecondInterface
{
public void myMethod()
{
Console.WriteLine("Some text..");
}
public void myOtherMethod()
{
Console.WriteLine("Some other text...");
}
}
class Program
{
static void Main(string[] args)
{
DemoClass myObj = new DemoClass();
myObj.myMethod();
myObj.myOtherMethod();
}
}
چرا چند اینترفیس مفید است؟
چند اینترفیس باعث می شود کلاس ها کارهای مختلف را از چند منبع یاد بگیرند. چون C# از چندوراثتی پشتیبانی نمی کند، اینترفیس ها راه جایگزین اند.
مثال واقعی
فرض کن گوشی تو هم دوربین دارد، هم پخش موسیقی. اگر هرکدام را یک اینترفیس در نظر بگیری، گوشی باید هر دو را پیاده سازی کند.
نکته های مهم درباره چند اینترفیس
- یک کلاس می تواند چند اینترفیس را همزمان پیاده کند.
- باید همه متدهای آن اینترفیس ها ساخته شوند.
- هیچکدام از اینترفیس ها بدنه متد ندارند.
- اگر دو اینترفیس متد هم نام داشته باشند، باید مشخص کنی کدام یک را می خواهی.
جمع بندی سریع
- چند اینترفیس یعنی چند رفتار در یک کلاس.
- کلاس باید همه متدها را پیاده کند.
- جایگزین چندوراثتی در C# است.
- متدهای مشابه باید جداگانه تعریف شوند.
- کد تمیزتر و منعطف تر می شود.
نکته: بخش اینترفیس را هم ببین تا بهتر متوجه تفاوتش با کلاس های انتزاعی شوی. همچنین می توانی در Enums یاد بگیری چطور مقادیر ثابت را با کد ترکیب کنی.