객체에 추가적인 요건을 동적으로 첨가한다.
데코레이터는 서브클래스를 만드는 것을 통해서 기능을 유연하게 확장할 수 있는 방법을 제공한다.
들어가기 전에,
상속은 is-a
구성은 has-a
클래스 다이어그램

Component
Decorator
- 자신기 장식할 구성요소가 같은 인터페이스 또는 추상 클래스를 구현.
ConcreteComponent
ConcreteDecorators
- 구상클래스 입니다!(== has-a)
- Component 객체가 들어있습니다.(== 구성요소에 대한 레퍼런스가 들어있는 인스턴스 변수가 있는 것)
- 이 객체를 통하여 추가적인 장식을 할 수 있습니다.
상속을 대신하기 위해 사용하는 패턴?
상속을 대체할 수는 없습니다.
다만 상속을 통해 하고자하는 일이 다릅니다!