패턴 - 장식자(DECORATOR) 의도 - 객체에 동적으로 새로운 책임을 추가할 수 있게 한다. 기능을 추가하려면, 서브 클래스를 생성하는 것보다 융통성 있는 방법을 제공한다. 다른 이름 - 랩퍼(Wrapper) 동기 - 가끔 전체 클래스에 새로운 기능을 추가할 필요는 없지만, 개별적인 객체에 새로운 책임을 추가할 필요가 있다. 예를 들어, GUI툴킷에서 모든 사용자 인터페이스 요소에는 필요 없지만, 어떤 사용자 인터페이스 요소에만 스크롤링(scroling)과 같은 행동이나 테두리(border)와 같은 속성을 추가할 수 있도록 해 줄 필요는 있다. 이런 것은 하나의 객체에 속성이 추가됨으로써 또 다른 책임이 추가되어야 한다. 하지만, 이 같은 방법은 테두리의 선택이 정적이기 때문에, 사용자는 구성요소를..