DI란 객체간의 의존관계를 객체 자신이 아닌 외부의 조립기가 수행해 준다는 개념이다.
이는 객체 생성시 소스코드에서 생성하는 것이 아닌 외부의 조립기가 수행하준다는 말로도 해석 가능하다.
예를 들면 컴퓨터를 사는 방법을 들 수 있다.
먼저 일반적인 방법으로는 컴퓨터를 조립해서 팔거나 완제품으로 나오는 메장에서 직접사는 방법이 있고, 직접 부품을 사 조립하는 방법이 있다.
완제품의 컴퓨터를 사는 방법 내가 원하든 원하지 않든 컴퓨터의 내부 부품을 만들어진 규격안에서 사는것이고, 직접 부품을 사서 조립하는 방법은 내가 원하는 부품을 골라 조립하는 차이가 있다.
완제품을 사는 방법
public class Player{ public static void main(String[] args) { Computer computer = new Computer(); computer.start(); } }
조립을 하는 방법
public class Player{ public static void main(String[] args) { Ram ram = new Ram(16G); CPU cpu = new CPU(I5); SSD ssd = new SSD(521G): ..... Computer computer = new Computer(ram,cpu,ssd); computer.start(); } }
위의 두 방법의 차이점은 객체간의 결합도 차이다. 조립으로 컴퓨터를 구매하면 컴퓨터라는 객체 안의 결합도를 낮출수 있다.
DI의 방법으로는 위와같이 Construction Injection(생성자 주입)과, Setter Injection(세터 주입) 방법이 있다.
Setter Injection이다은 아래와같이 사용한다.
'프로그래밍 > 그외' 카테고리의 다른 글
facade pattern (1) | 2016.06.21 |
---|---|
DB Savepoint (0) | 2016.06.21 |
scheduling - 스케줄링 (0) | 2016.06.01 |
First Class Object (0) | 2016.05.25 |