장식자 (Decorator) 1. 의도 객체에 새로운 기능을 동적으로 추가하는 방법 2. 활용 기존에 있던 인터페이스에 기능을 추가하고 싶을 때 사용한다. 특정 클래스에 추가적인 기능을 포함하고 있는 서브 클래스를 만드는 것을 피한다. 예시로 GUI에 표시하는 시각적 객체들을 위한 VisualComponent 클래스가 있다하자. 그렇다면 VisualComponent 내부의 클래스 계통에 있는 모두에게 기능을 추가하는 것이 아니라 특정 서브 클래스에만 기능을 추가하는 것이다. VisualComponent 클래스를 상속하는 특정 서브 클래스를 TextView라고 하자. TextView 인터페이스에 스크롤바와 테두리 기능을 추가하고 싶을 때, TextView를 상속하는 새로운 서브 클래스를 만들어야할까? 당연..