Proxy Pattern과 많이 유사하지만 그 의도에 따라 나뉜다. 프록시를 통해 접근 제어가 목적 -> Proxy 프록시를 통해 기능 부가 -> Decorator 데코레이터는 인터페이스를 의존한다. 인터페이스의 구현체는 String을 반환함. 데코레이터는 인터페이스를 구현한 뒤 실제 객체 혹은 데코레이터를 주입받는다. MessageDecorator에서 String값에 ******을 앞뒤로 추가해주고, TimeDecorator에서 실제 객체의 메서드 실행시간을 구해준다. 클라이언트 또한 인터페이스를 의존하며 주입받은 객체의 메서드를 이용하여 요청을 완료한다. 실 객체 인스턴스를 생성 -> 데코레이터가 실 객체를 주입받음 -> 클라이언트는 데코레이터를 주입받아 요청을 실행.