اینترفیس‌ها (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# است که به ما کمک می‌کند سیستم‌های قابل توسعه، تست‌پذیر و انعطاف‌پذیر بسازیم.