[5주차] Clean_Code_11-13장 정원영
Closed this issue · 3 comments
cheongwonyoung commented
p.198에
MyService myService = (MyService)(jndiContext.lookup("NameofMyService"));
”호출하는 객체는 실제로 반환되는 객체의 유형을 제어하지 않는다. 대신 호출하는 객체는 의존성을 능동적으로 해결한다.”
질문
- 호출하는 객체가 jndiContext이고, 객체의 유형을 제어하지 않는 부분이 (MyService)로의 형변환을 jndiContext 객체가 직접 제어하지 않는다는 의미로 이해하는게 맞을까요 ??
- “의존성을 ‘능동적’으로 '해결'한다.” 가 어떤 의미인지 이해하지 못했습니다. 어떤 부분을 능동적으로 해결한다는 것인지 의미를 이해하신 분이 계시다면 여쭤보고 싶습니다!
chuseok commented
1.
제 생각은 context에서는 "의존성 주입을 통해 객체를 직접 생성하지 않지만 lookup이라는 메서드를 사용해서 이름으로 필요한 객체를 검색하여 MyService로 서비스를 요청한다" 라고 이해 했습니다.
형변환은 jndi에서 검색된 객체를 Object로 가져오기 때문에 해준거라 객체를 사용하기 위해서 변환한 것일 뿐인 거 같고 의존성 주입에 관련된 얘기는 아닌 거 같습니다!
lee-JunR commented
- 의존성을 능동적으로 해결한다는 것은 클래스가 자신이 필요하는 클래스를 setter 등을 통해 생성하고 사용하는 거라고 이해했습니다..
Animal dog = new Animal();
dog.setAnimal(new Dog()); // 해당 부분에서 의존성이 수동적으로 설정되지 않음...?
dog.makeSound();
이런식으로...? 저도 뿌옇긴한데 어렵네요.... 혹시 제 예시가 이상하다면 언급해주시길 바랍니다!!
GaHee99 commented
음 제 생각에는,
- 원영님 생각과 동일합니다.