-
[객체지향의 원리와 이해] 데코레이터 패턴 (Decorator Pattern)개발/OOP, Design Pattern 2021. 1. 2. 16:07
데코레이터 패턴
메서드 호출의 반환값에 변화를 주기 위해 중간에 장식자를 두는 패턴
참고 : https://johngrib.github.io/wiki/decorator-pattern/원본에 장식을 더하는 패턴이다.
프록시와 구현 방법이 같다.
데코레이터 패턴
은 클라이언트가 받는 값에 장식을 더하는 것이 목적이다.프록시의 패턴
의 목적은 제어의 흐름을 변경하거나 별도의 로직 처리이다.- 그리고 반환값을 변경하지 않는다.
중요 포인트
장식자는 실제 서비스와 같은 이름의 메서드를 구현한다. 이때 인터페이스를 사용한다.
장식자는 실제 서비스에 대한 참조 변수를 갖는다.(합성)
장식자는 실제 서비스의 같은이름을 가진 메서드를 호출하고, 그 반환값에 장식을 더해 클라이언트에게 돌려준다.
장식자는 실제 서비스의 메서드 호출 전후에 별도의 로직을 수행할 수도 있다.