2-1. 인터페이스 기반 프록시 vs 클래스 기반 프록시
Last updated
Last updated
인터페이스가 없어도 클래스 기반으로도 프록시 생성 가능
클래스 기반 프록시는 해당 클래스에만 적용 가능. 인터페이스 기반 프록시는 인터페이스만 같으면 모든 곳에 적용 가능.
클래스 기반 프록시는 상속을 사용. → 제약이 있음
부모 클래스의 생성자를 호출해야 함
클래스에 final 키워드가 붙으면 상속이 불가능
메서드에 final 키워드가 붙으면 해당 메서드를 오버라이딩 불가.
인터페이스 기반의 프록시는 상속이라는 제약에서 자유로움
또한 역할과 구현을 나누기에도 좋음. 다만 구현을 거의 변경할 일이 없는 클래스들도 있을텐데 이럴때 구체 클래스를 바로 사용할 수도 있음.
아래의 링크처럼 V1처럼 인터페이스, V2처럼 구체 클래스로 사용할 수 있고 두가지 상황을 모두 대응할 수 있어야함.