어떤 객체에 책임(기능)을 동적으로 추가하는 패턴
자바 IO는 데코레이터 패턴으로 구성된다.
자바 IO는 바이트(byte) 단위 입출력과 문자(char)단위 입출력이 있다.
자바 IO 클래스는 추상 클래스인 InputStream, OutputStream, Reader, Writer 중에 하나를 상속받는다.
장식에 해당하는 클래스는 생성자에 InputStream, OutputStream, Reader, Writer 클래스를 파라미터로 받는다.
자식이 부모의 특징을 상속받아서 사용 가능하다.
다중 상속이 불가능하며 부모의 특징을 그대로 사용함으로써 코드의 효울을 높일 수 있다.
특정 인터페이스를 구현하는 것이다.
메서드를 인터페이스에서 정의함으로써 해당 인터페이스를 implements한 클래스가 메서드를 재 정의하도록 구현한다. 다중 구현이 가능하다.