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;
}
}
객체 내부에서 제어하여 변경에 자유롭지 못한 코드가
외부에서 제어를 받으면서 변경에 자유로워 졌다.
역할과 관심을 분리해 응집도를 높이고 결합도를 낯준다.
이에 따라 변경에 유연한 코드를 작성할 수 있는 구조가 될 수 있다.
Don’t call us, we’ll call you