의사 코드
운전자가 자동차를 생성한다.
자동차는 내부적으로 타이어를 생산한다.
자바로 표현
new Car();
Car 객체 생성자에서 new Tire();
의존성은 new
이다. new를 실행하는 Car와 Tire 사이에서 Car가 Tire에 의존한다.
결론적으로 전체가 부분에 의존한다고 표현할 수 있다. 즉, 의존 관계는 new로 표현되는 것이다.
또한, 의존성이란, 외부에서 라는 뜻을 내재하고 있다.
public class Driver {
public static void main(String[] args) {
Tire tire = new KoreaTire():
//Tire tire = new AmericaTire();
Car car = new Car(tire);
System.out.println(car.getTireBrand());
}
}
이러한 방법을 통해서 얻는 이점은 tire가 미국산이든 국내산이든 Tire 인터페이스를 구현한 구현체라면 정상적으로 작동하게 된다. 확장성이 좋아지며, Car클래스의 수정이 불필요해진다.
즉, 코드가 한결 깔끔해진 것을 알 수 있다.
public class Driver {
public static void main(String[] args) {
Tire tire = new KoreaTire();
Car car = new Car();
car.setTire(tire);
System.out.println(car.getTireBrand());
}
}