1. 입력과 출력을 다루는 추상 클래스 (장식대상 클래스)

    1. inputStram
    2. OutputStream
    3. Reader
    4. Write
  2. Byte, Char 기반

    1. Byte = inputStram + OutputStream
    2. Char = Reader + Writer
  3. IO

    1. IO = Byte + Char
  4. 장식 대상, 장식 하는 클래스

    1. 장식대상 클래스

    b. 장식하는 클래스

데코레이터 패턴 : 생성자에서 감싸서 새로운 기능을 계속 추가 할 수 있도록 클래스를 만드는 방식