IoC

public class A {
	private B b;

	public A() {
		this.b = new B();
	}
}
public class A {
	private B b;

	public A(B b) {
		this.b = b;
	}
}

IoC가 필요한 이유

1. 변경에 자유로워진다.

객체 내부에서 제어하여 변경에 자유롭지 못한 코드가

외부에서 제어를 받으면서 변경에 자유로워 졌다.

2. 객체지향 원칙을 잘 지킬 수 있다.

역할과 관심을 분리해 응집도를 높이고 결합도를 낯준다.

이에 따라 변경에 유연한 코드를 작성할 수 있는 구조가 될 수 있다.

3. Hollywood Principle

Don’t call us, we’ll call you