Decorator Design Pattern(데코레이터 패턴) Define 객체에 추가적인 요건을 동적으로 첨가한다. 데코레이터는 서브클래스를 만드는 것을 통해서 기능을 유연하게 확장할 수 있는 방법을 제공한다. Structure- 데코레이터(OptionalWrapper)의 슈퍼클래스(Interface)는 자신이 장식하고 있는 객체(CoreFunctionality)의 슈퍼클래스와 같다. Example) Advantage- 클래스의 기능들이 동적으로 변경될 소지가 있을 때 사용- 클래스에 동적으로 추가하는 기능들이 앞으로도 더 추가될 수 있을 때 사용- 클래스에 기능들을 여러개로 조합 될 때 미리 정의해두기 너무 많은 클래스가 생성되므로, 즉시 생성이 가능하게 할 때 사용- 한 객체를 여러개의 데코레이터로..