JAVA 객체 지향 디자인 패턴 - 4 - 구조
포스트
취소

JAVA 객체 지향 디자인 패턴 - 4 - 구조

  • Structural Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴으로, 서로 다른 인터페이스를 지닌 2개의 객체를 묶어 단일 인터페이스를 제공하거나 객체들을 서로 묶어 새로운 기능을 제공하는 패턴

Decorator 데코레이터 패턴은 기본 기능에 추가할 수 있는 기능의 종류가 많은 경우에 각 추가 기능을 데코레이터 클래스로 정의한 후 필요한 데코레이터 객체를 조합함으로써 추가 기능의 조합을 설계하는 방식이다. 예를 들어 기본 도로 표시 기능에 차선 표시, 교통량 표시, 교차로 표시, 단속 카메라표시의 4가지 추가 기능이 있을 때 추가 기능의 모든 조합은 15가지다 된다. 데코레이터 패턴을 사용하면 개별 추가 기능에 해당하는 데코레이터 클래스 4개만 구현하고 개별 추가 기능을 객체의 형태로 조합함으로써 추가 기능의 조합을 구현할 수 있다. 또한 프로그램을 실행하는 중에도 데코레이터 객체의 조합이 가능하므로 필요한 추가 기능의 조합을 동적으로 생성하는 것도 가능하다.

Composite 컴퍼지트 패턴은 부분-전체의 고나계를 갖는 객체를 정의할 때 유용하다. 지금까지 설명한 컴퓨터 예제에서 알 수 있듯이 모니터, 바디 등의 객체가 컴퓨터 클래스 전체 객체의 일부분으로 정의되었다. 이런 경우 부분 객체의 추가나 삭제등이 있어도 전체 객체의 클래스 코드를 변경하지 않으면 컴퍼지트 패턴은 유용하다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.