데코레이터 패턴은 프록시 패턴과 구현 방식이 같다. 다만, 프록시 패턴은 클라이언트가 최종적으로 돌려 받는 return 값을 조작하지 않고 그대로 전달하면 반면, 데코레이터 패턴은 클라이언트가 받은 return 값에 장식을 더한다. 프록시 패턴과 데코레이터 패턴 비교
소프트웨어의 구성 요소(컴포넌트, 클래스, 모듈, 함수)는 확장에 개방되어야 하지만 변경에는 폐쇄되어야 한다. 즉, 기존 코드를 변경하지 않으면서 기능을 추가할 수 있도록 설계되어야 한다.전략 패턴을 이용하는 역할 수행필요에 따라 동적으로 구체적인 전략을 바꿀 수 있다