사실 다른 클래스 끼리의 관계 자체는 똑같은데,
인터페이스냐 구체클래스냐의 차이인데,
아무래도 인터페이스가 좋긴 하다.
역할과 기능구현이 딱 나뉘니까.
그리고, 구체 클래스 프록시의 단점은.
의미없게 super 생성자 호출해야 한다는 점
final 클래스면 상속 불가
final 메소드면 오버라이드 불가.
인터페이스 기반 프록시의 단점은 인터페이스를 써야 한다는 점.
또 캐스팅 관련해서 단점이 있다고 한다. 이건 나중에..
이론적으론 역할과 구현을 인터페이스처럼 확실히 나누는 게 좋지만,
바뀔 일 없이 구현체 하나만 만들어도 되는 것이 존재한다.
그래서 둘이 섞여 있으므로,
둘 다 프록시를 만들 수 있어야 한다.
그리고, 지금까지 봐왔단 단점.
기능은 LogTrace 하나인데, 그 공통적인 것을 프록시마다 계속 중복되게 집어넣고 있다.
이걸 해결하는 것이 동적으로 프록시를 생성한다고 해서, 동적 프록시 기술이다.
'스프링 > 스프링 핵심 원리 - 고급편' 카테고리의 다른 글
36. JDK 동적 프록시 (0) | 2024.01.20 |
---|---|
35. 리플렉션 (0) | 2024.01.20 |
33. 구체클래스 프록시 적용 (0) | 2024.01.19 |
32. 구체 클래스에 프록시 적용 (0) | 2024.01.19 |
31. 로그트레이스 프록시 적용 (0) | 2024.01.19 |