Core Technologies

IoC/DI - 제어의 역전/의존성 주입

public class SampleController {
   private Repository repository;

   public SampleController() {
     //this.repository = new HelloRepository();
       this.repository = new HiRepository();
   }
   
   public void addSample(String sample) {
       repository.save(sample);
   }
   
   ...
}

SampleController

Repository를 외부에서 주입해준다면?

public class SampleController {
   private Repository repository;

   public SampleController(Repository repository) {
       this.repository = repository;
   }
   
   public void addSample(String sample) {
       repository.save(sample);
   }
   
   ...
}

SampleController