structural pattern 4

[21] 디자인 패턴 목록 - 구조 패턴 - 데코레이터 패턴(Decorator Patten)

출처 : 디자인 패턴에 뛰어들기 - 알렉산더 슈베츠 도서데코레이터 패턴(Decorator Patten)이란?객체들을 새로운 행동들을 포함한 특수 래퍼 객체들 내에 넣어서 위 행동들을 해당 객체들에 연결시키는 구조적 디자인 패턴이다.문제당신이 알림 라이브러리를 만들고 있다고 상상해 보세요.이 알림 라이브러리의 목적은 다른 프로그램들이 사용자들에게 중요한 이벤트들에 대해 알릴 수 있도록 하는 것이다.이 라이브러리의 초기 버전은 Notifier(알림자) 클래스를 기반으로 했으며, 이 클래스에는 몇 개의 필드들, 하나의 생성자 그리고 단일 send(전송) 메서드만 있었다. 이 메서드는 클라이언트로부터 메시지 인수를 받은 후 그 메세지를 알림자의 생성자를 통해 알림자에게 전달된 이메일 목록으로 보낼 수 있다. 또..

[20] 디자인 패턴 목록 - 구조 패턴 - 복합체 패턴(Composite Patten)

출처 : 디자인 패턴에 뛰어들기 - 알렉산더 슈베츠 도서복합체 패턴(Composite Patten)이란?객체들을 트리 구조들로 구성한 후, 이러한 구조들과 개별 객체들처럼 작업할 수 있도록 하는 구조패턴이다.문제복합체 패턴은 앱의 핵심 모델이 트리로 표현될 수 있을 때만 사용하세요. 예로 제품들과 상자들이라는 두 가지 유형의 객체들이 있다고 가정하여 설명한다.상자에는 여러 개의 제품들과 여러 개의 작은 상자들이 포함될 수 있다.이 작은 상자들은 또한 일부 제품들 또는 더 작은 상자들등을 담을 수 있다.이러한 클래스들을 사용하는 주문 시스템을 만들기로 했다고 가정한다.주문들에는 포장이 없는 단순한 제품들과 제품들로 채워진 상자들 및 다른 상자들이 포함될 수 있다.그러면 그러한 주문의 총 가격을 어떻게 계산..

[19] 디자인 패턴 목록 - 구조 패턴 - 브릿지 패턴(Bridge Pattern)

출처 : 디자인 패턴에 뛰어들기 - 알렉산더 슈베츠 도서브릿지(Bridge)란?큰 클래스 또는 밀접하게 관련된 클래스들의 집합을 두 개의 개별 계층구조(추상화 및 구현)로 나눈 후 각각 독립적으로 개발할 수 있도록 하는 구조 디자인 패턴이다.문제간단한 예시를 한번 살펴본다.원(Circle) 및 직사각형(Square)이라는 한 쌍의 자식 클래스들이 있는 기하학적 모양(Shape) 클래스가 있다고 가정하여 설명한다.이 클래스 계층 구조를 확장하여 색상을 도입하기 위해 빨간색(Red) 및 파란색(Blue) 모양들의 자식 클래스들을 만들 계획이지만, 이미 두 개의 자식 클래스가 있으므로 파란색 원(BlueCircle) 및 빨간색 직사각형(RedSquare)와 같은 네 가지의 클래스 조합을 만들어야 한다.클래스 ..

[18] 디자인 패턴 목록 - 구조 패턴 - 어댑터(Adapter, Wrapper)

출처 : 디자인 패턴에 뛰어들기 - 알렉산더 슈베츠 도서어댑터(Adapter)란?호환되지 않는 인터페이스를 가진 객체들이 협업할 수 있도록 하는 구조적 디자인 패턴이다.문제주식 시장 모니터링 앱을 만들고 있고, 이 앱은 여러 소스에서 주식 데이터를 XML 형식으로 다운로드한 후 사용자에게 보기 좋은 차트들과 다이어그램들을 표시한다고 가정한다.어느 시점에 당신은 타사의 스마트 분석 라이브러리를 통합하여 당신의 앱을 개선하기로 결정하였으나, 함정이 존재하게 되는데, 이 분석 라이브러리는 JSON 형식의 데이터로만 작동한다는 것이다.그림과 같이 분석 라이브러리는 '있는 그대로' 사용할 수 없다. 왜냐하면 앱과 호환되지 않는 형식의 데이터를 기다리고 있기 때문이다.즉, 해당 라이브러리를 XML과 작동하도록 변경..