클래스의 소스변경없이 추가기능을 동적으로 추가시키는 패턴.
데코레이터 패턴을 적용한 사례는 java.io 패키지에 많이 있다.
Reader reader = new BufferedReader(new InputStreamReader(System.in));
==> 풀어보면...
Reader reader = new InputStreamReader(System.in);
reader = new BufferedReader(reader);
정의 - 객체에 추가 요소를 동적으로 더할 수 있습니다.
데코레이터를 사용하면 서브클래스를 만드는 것을 통해서 기능을 유연하게 확장할 수 있는 방법을 제공합니다.