اینترفیسها (Interfaces) در C#
اینترفیسها یکی از مهمترین مفاهیم در C# هستند که یک قرارداد (Contract) بین کلاسها تعریف میکنند.
Interface چیست؟
Interface مجموعهای از متدها و ویژگیها را تعریف میکند که کلاسها باید آنها را پیادهسازی کنند. اینترفیس خودش هیچ پیادهسازی ندارد.
تعریف Interface
public interface ILogger
{
void Log(string message);
}
پیادهسازی Interface
public class ConsoleLogger : ILogger
{
public void Log(string message)
{
Console.WriteLine(message);
}
}
public class FileLogger : ILogger
{
public void Log(string message)
{
// فرضی: نوشتن در فایل
Console.WriteLine("Write to file: " + message);
}
}
استفاده از Interface
ILogger logger = new ConsoleLogger();
logger.Log("Hello World");
چند پیادهسازی برای یک Interface
یکی از قدرتهای Interface این است که میتوان چندین پیادهسازی مختلف برای آن داشت.
ILogger logger1 = new ConsoleLogger();
ILogger logger2 = new FileLogger();
logger1.Log("Console log");
logger2.Log("File log");
مزایای Interface
- کاهش وابستگی بین کلاسها
- افزایش انعطافپذیری سیستم
- پشتیبانی از Dependency Injection
- تستپذیری بهتر کد
مثال واقعی در پروژه
public interface IEmailService
{
void Send(string to, string subject);
}
public class SmtpEmailService : IEmailService
{
public void Send(string to, string subject)
{
Console.WriteLine("Sending email via SMTP");
}
}
جمعبندی
Interface یکی از پایههای طراحی حرفهای در C# است که به ما کمک میکند سیستمهای قابل توسعه، تستپذیر و انعطافپذیر بسازیم.