데코레이터 패턴(Decorator Pattern)

seunghyun lee·2022년 7월 16일
0

Computer Science

목록 보기
5/19
post-thumbnail

데코레이터 패턴(Decorator Patter)

어떤 객체에 책임(기능)을 동적으로 추가하는 패턴

데코레이터 패턴의 장단점

장점

  1. 기존 코드를 수정하지 않고도 데코레이터 패턴을 통해 행동을 확장시킬 수 있다.
  2. 구성과 위임을 통해서 실행중에 새로운 행동을 추가할 수 있다.

단점

  1. 의미없는 객체들이 너무 많이 추가된다.
  2. 구성 요소를 초기화하는 코드가 필요 이상으로 복잡해진다.

자바의 I/O(Input Output) 클래스에 적용된 Decorator 패턴

I/O class 특징

자바 IO는 데코레이터 패턴으로 구성된다.
자바 IO는 바이트(byte) 단위 입출력과 문자(char)단위 입출력이 있다.
자바 IO 클래스는 추상 클래스인 InputStream, OutputStream, Reader, Writer 중에 하나를 상속받는다.
장식에 해당하는 클래스는 생성자에 InputStream, OutputStream, Reader, Writer 클래스를 파라미터로 받는다.

상속 vs 구현

상속(extends)

자식이 부모의 특징을 상속받아서 사용 가능하다.
다중 상속이 불가능하며 부모의 특징을 그대로 사용함으로써 코드의 효울을 높일 수 있다.

구현 (implements)

특정 인터페이스를 구현하는 것이다.
메서드를 인터페이스에서 정의함으로써 해당 인터페이스를 implements한 클래스가 메서드를 재 정의하도록 구현한다. 다중 구현이 가능하다.

0개의 댓글