-- gim 2016-09-27 00:00:00

사용자(client)가 제어하지 않고 f/w이 제어를 함

MyServiceSmtpMailSender를 이용해 메일을 보내고자 할때.. IoC개념을 적용하지 않은 일반적인 경우는 MyService에서 new SmtpMailSender() 와 같은 형태로 SmtpMailSender를 제어한다. (어떤 MailSender 구현체를 사용할지를 MyService가 결정)

하지만 IoC 를 적용하게 된다면
SmtpMailSender implements MailSender
와 같이 SmtpMailSender를 추상화하고 MyService내에서는 MailSender에 대한 참조만 가지고 있고 실제 DI(Dependency Injection)는 framework( or container)에 의해 이루어진다. (어떤 MailSender 구현체를 사용할지를 framework가 결정)

이렇게 되면 MyService는 저수준모듈인 SmtpMailSender 혹은 MailSenderFactory에 대한 의존성을 갖지 않을 수 있게 된다. (spring 같은 프레임워크에서는 설정파일이나 annotation등을 이용하여 DI를 해주므로 MyService는 framework에 대한 의존성도 없엘 수 있음)

저수준 모듈 및 프레임워크에 대한 결합도 낮춤



Dependency Lookup : JNDI등 이용(ex:ejb)

Dependency Injection(Construtction, Setter)
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-08-16 13:57:15
Processing time 0.0076 sec