Skip to main content

💡 依賴反轉原則

dependency inversion principle

  • 抽象不應該依賴於細節,細節則應該要依賴於抽象
  • 因此我們需要先寫出抽象介面,在實作功能
  • 所有類別都要相依於抽象,而不是具體的實作
  • 可透過 DI Container 達到目的
  • 為了達到低耦合的目的
    • 所有的類別之間都需要透過抽象介面

範例

controller

public class UserController
{
private readonly IUserService userService
// DI
public UserController( IUserService userService )
{
this.userService = userService;
}
}

service

public interface IUserService
{
//define function
}

public class UserService:IUserService
{
// Do something

}