// コンストラクタ注入 // UserRepositoryインタフェースを持つものは何でもInjectできる public UserService(UserRepository repository) { this.repository = repository; } } // UserRepositoryインタフェースを実装したクラスをコンストラクタに渡す var myUseCase = new FindUserUseCase(new MySqlUserRepository()) // DI var pgUseCase = new FindUserUseCase(new PostgreSqlUserRepository()) // DI