※ 구조 패턴을 총 정리
종류 | 특징 |
적응자 Adapter | - 서로 관련 없는 두 개의 인터페이스를 가져와 새로운 인터페이스로 통합하는 것 - 다른 클래스 인스턴스를 참조자로 관리하거나 다중 상속으로 구현. |
가교 Bridge | - 클래스 계통을 추상 표현과 구현부로 나누고 구현부 인스턴스를 통한 구현 기능을 제공. - 구현부 인스턴스를 참조자로 관리. |
복합체 Composite | - 객체의 전체와 부분을 포괄하여 표현할 수 있는 추상 클래스를 정의. - 소유 관계를 트리 형태로 나타내고 자식 연산에 대한 인터페이스를 제공. - Leaf 클래스는 자식을 포함하지 않는 독립적인 객체. |
장식자 Decorator | - 어떤 객체에 새로운 기능을 추가하고 싶을 때 덧대는 방법. - Decorator는 덧대고자 하는 대상 클래스와 동등한 서브 클래스로 대상 클래스 인스턴스를 참조자로 소유하여 해당 클래스의 구현을 먼저 실행하고 자신의 기능을 실행함. |
퍼사드 Facade | - 서브 시스템을 포괄하는 인터페이스를 정의. - 사용자와 서브 시스템 결합을 약하게하고 퍼사드를 통해 필요한 서브시스템의 인터페이스를 제공. - 서브 시스템을 보호한다. |
플라이급 Flyweight | - 표현 상태가 적은 객체들을 flyweight pool 모아두고 공유할 수 있는 기능을 제공. - 플라이급 객체는 본질적 상태와 부가적 상태로 나뉘고 부가적 상태에 해당하는 상황에 따라 플라이급 객체를 표현. - 플라이급 객체를 생성, flyweight pool을 관리하고 공유하 FlyweightFactory 클래스가 있음. |
프록시 Proxy | - 다른 객체를 접근을 대신 수행하고 같은 인터페이스를 제공. - 실제 객체를 참조자로 관리하고 접근할 때 인스턴스화하여 생성함. - GetObject()->Operation() |
구조 패턴간의 비교
- 적응자 패턴과 가교 패턴
- 적응자 패턴과 퍼사드 패턴
- 복합체 패턴과 장식자 패턴
- 프록시 패턴과 장식자 패턴
'디자인 패턴 > GoF' 카테고리의 다른 글
[디자인 패턴] 행동 패턴 (1) 책임 연쇄 Chain of Responsiblity (0) | 2021.02.01 |
---|---|
[디자인 패턴] 생성 패턴 정리 (0) | 2021.02.01 |
[디자인 패턴] 구조 패턴 (7) 프록시 Proxy (0) | 2021.01.30 |
[디자인 패턴] 구조 패턴 (6) 플라이급 Flyweight (0) | 2021.01.29 |
[디자인 패턴] 구조 패턴 (5) 퍼사드 Facade (0) | 2021.01.28 |