반응형
스프링은 Dependency + Injection + Framework
What is dependency?
- 의존관계
- Supplier의 변화가 Client에 영향을 주는 경우

- 의존관계 존재시 reusable한 객체생성이 쉽지 않을 수도..
- 런타임 시점에 결정되는 관계를 작성해야 함
- 구현 대신 인터페이스 사용
- 오브젝트 합성(composition)을 사용
- 런타임 시점에 결정되는 관계를 작성해야 함

What is a static dispatch
- 컴파일 시점에 어떤 메서드가 호출될지 컴파일러는 알고 있는 경우
- 어떤 메서드 호출될지 결정 -> Method Dispatch 과정, 이 과정에서 static 또는 dynamic을 결정
- Method Signature(method name, parameter type)를 활용
- Method Signature가 같으면 같은 클래스내 정의 불가
- 어떤 메서드 호출될지 결정 -> Method Dispatch 과정, 이 과정에서 static 또는 dynamic을 결정
- 메서드 오버로딩 과정에서 static dispatch 발생
- 바이트 코드로 정보가 그대로 남음
What is a dynamic dispatch
- Static과는 다르게 컴파일러가 어떤 메서드를 호출할지 모르는 경우
- Interface 또는 추상 클래스를 사용해 내부에 정의된 Method를 호출
- 컴파일러가 알고 있는 타입 정보로 Runtime 시 해당 타입의 객체를 생성 후 메서드를 호출함
Interface Person {
public String getName();
}
Class Student implements Person {
@Override
public String getName() {
return "Student";
}
}
Class Main() {
Person p = new Student();
}
Ref
https://multifrontgarden.tistory.com/133
https://www.youtube.com/watch?v=s-tXAHub6vg&list=PLv-xDnFD-nnmof-yoZQN8Fs2kVljIuFyC&index=16
토비의봄#01. Double Dispatch
토비의 스프링으로 유명한 토비님의 방송을 보고 정리를 시작한다. 1. Dispatch 1. (특히 특별한 목적을 위해) 보내다 2. (편지・소포・메시지를) 보내다 3. 신속히 해... 네이버 검색결과이다. 자바는
multifrontgarden.tistory.com
반응형
'spring' 카테고리의 다른 글
[Gradle]Multi Application.properties 사용하기 (1) | 2024.03.23 |
---|---|
스프링부트 2.2.10에서 2.6.6으로 upgrade (0) | 2022.04.05 |
Post로 전달된 json Body 여러번 읽기 (0) | 2021.09.12 |
Spring-Kafka에서 읽은 Record 개수 알기 (0) | 2021.07.13 |