인터페이스 기반 프록시 vs 클래스 기반 프록시

박찬우·2024년 2월 14일
0

스프링

목록 보기
43/88

인터페이스 기반 프록시 vs 클래스 기반 프록시

  • 인터페이스가 없어도 클래스 기반으로 프록시를 생성할 수 있다.
  • 클래스 기반 프록시는 해당 클래스에만 적용할 수 있다. 인터페이스 기반 프록시는 인터페이스만 같으면 모든 곳에 적용할 수 있다.
  • 클래스 기반 프록시는 상속을 사용하기 때문에 몇가지 제약이 있다.
    • 부모 클래스의 생성자를 호출해야 한다.(앞서 본 예제)
    • 클래스에 final 키워드가 붙으면 상속이 불가능하다.
    • 메서드에 final 키워드가 붙으면 해당 메서드를 오버라이딩 할 수 없다.
  • 인터페이스 기반의 프록시는 상속이라는 제약에서 자유롭다.
  • 프로그래밍 관점에서도 인터페이스를 사용하는 것이 역할과 구현을 명확하게 나누기 때문에 더 좋다.
  • 인터페이스 기반 프록시의 단점은 인터페이스가 필요하다는 그 자체이다. 인터페이스가 없으면 인터페이스 기반 프록시를 만들 수 없다
  • 구현을 변경할 가능성이 거의 없는 경우는 클래스 기반 구현을 변경할 가능성이 많은 경우 인터페이스 기반을 사용하자
profile
진짜 개발자가 되어보자

0개의 댓글