스프링 핵심 원리(고급편)

Ch04. 프록시 패턴과 데코레이터 패턴 - 프록시 패턴과 데코레이터 패턴 정리

webmaster 2022. 4. 10. 14:59
728x90

Gof의 디자인 패턴

  • 생각해보면 Decorator 기능에 일부 중복이 있다
  • 꾸며주는 역할을 하는 Decorator 들은 스스로 존재할 수 없다. 항상 꾸며줄 대상이 있어야 한다
  • 따라서 내부에 호출 대상인 component를 가지고 있어야 한다. 그리고 component를 항상 호출해야 한다. 이 부분이 중복이다.
  • 이런 중복을 제거하기 위해 component 를 속성으로 가지고 있는 Decorator라는 추상 클래스를 만드는 방법도 고민할 수 있다.
  • 이렇게 하면 추가로 클래스 다이어그램에서 어떤 것이 실제 컴포넌트 인지, 데코레이터인지 명확하게 구분할 수 있다. 여기까지 고민한 것이 바로 GOF에서 설명하는 데코레이터 패턴의 기본 예제이다

프록시 패턴 vs 데코레이터 패턴

  • 의도(intent)
    • 의도에 따라 패턴을 구분한다.
    • 프록시 패턴의 의도: 다른 개체에 대한 접근을 제어하기 위해 대리자를 제공
    • 데코레이터 패턴의 의도: 객체에 추가 책임(기능)을 동적으로 추가하고, 기능 확장을 위한 유연한 대안 제공
728x90