목록OOP 디자인 패턴/구조패턴 (3)
복합체 패턴 (Composite) 복합체 패턴은 객체들을 트리 구조들로 구성한 후, 이러한 구조들과 개별 객체들처럼 작업할 수 있도록 하는 구조 패턴입니다. 복합체 패턴은 앱의 핵심 모델이 트리로 표현될 수 있을 때만 사용하세요. 복합체 구성요소 Component 추상클래스 : 트리의 단순 요소들과 복잡한 요소들 모두에 공통적인 작업을 설명합니다. Leaf 클래스 : 잎은 트리의 기본 요소이며 하위요소가 없습니다. Composite 클래스 : 컨테이너(일명 복합체)는 하위 요소들(잎 또는 기타 컨테이너)이 있는 요소입니다. 컨테이너는 자녀들의 구상 클래스들을 알지 못하며, 컴포넌트 인터페이스를 통해서만 모든 하위 요소들과 함께 작동합니다. 요청을 전달받으면 컨테이너는 작업을 하위 요소들에 위임하고 중간 ..
브리지 패턴 (Bridge) 브리지는 큰 클래스 또는 밀접하게 관련된 클래스들의 집합을 두 개의 개별 계층구조(추상화 및 구현)로 나눈 후 각각 독립적으로 개발할 수 있도록 하는 구조 디자인 패턴입니다. 브리지 구성요소 리모컨 클래스 : 추상화를 담당하며, 기기를 참조해서 기기가 여러가지 동작을 수행하도록한다. tv의 볼륨을 올리거나, 채널을 변경하거나 기능이 추가된 리모컨 클래스 : 리모컨 클래스에는 없는 또다른 기능이 추가된 advanced된 리모컨입니다. 기기 인터페이스 : 리모컨클래스에서 사용하는 메서드들을 미리 선언해 둡니다. 기기 인터페이스를 구현하는 여러가지 기기들 : 기기 인터페이스에서 선언한 메서드들에 대한 구현과 추가적인 메서드들을 포함할 수 있습니다. 요약 브리지 패턴은 추상화와 구현..
어댑터 패턴 (Adapter) 어댑터는 호환되지 않는 인터페이스를 가진 객체들이 협업할 수 있도록 하는 구조적 디자인 패턴입니다. 어댑터는 한 객체의 인터페이스를 다른 객체가 이해할 수 있도록 변환하는 특별한 객체입니다. 어댑터 구성요소 Target class (JsonFormat class) : 기본 비즈니스 로직의 인터페이스와 호환되는 형식을 정의합니다. (JSON 분석 프로그램이라고 가정합니다) → JSON 형식의 데이터와만 통신 가능 Adaptee class : XML 형식의 데이터로써, 우리의 비즈니스 로직에 넣어서 처리할 수 없는 데이터 형식 Adapter class : Adaptee 객체를 받아서 적절한 처리 후, 우리의 비즈니스 로직이 처리할 수 있도록 JSON 형식으로 변환해주는 클래스 ..