Interface در مقابل Dependency Injection
Interface قرارداد تعریف میکند، اما Dependency Injection نحوه ارائه وابستگیها را مدیریت میکند.
| ویژگی | Interface | Dependency Injection |
|---|---|---|
| هدف | تعریف قرارداد | ساخت و تزریق Object |
| اجرا | Compile Time | Runtime |
| جایگزینی Dependency | کمک میکند | انجام میدهد |
| وابستگی | کم میکند | مدیریت میکند |
کِی از Interface استفاده کنیم؟
برای کاهش وابستگی مستقیم بین کلاسها.
کِی از Dependency Injection استفاده کنیم؟
برای مدیریت Lifecycle و ساخت Objectها.
مثال Interface
public interface ILoggerService { void Log(string message); }
مثال Dependency Injection
builder.Services .AddScoped<ILoggerService, LoggerService>();
اشتباه رایج
فکر کردن اینکه Interface خودش Dependency Injection است.
جمعبندی
Interface = قرارداد
DI = مدیریت وابستگی
