CS Study

디자인 패턴 - 구조 패턴

danalee252 2022. 5. 17. 18:22

구조패턴

클래스나 객체를 조합하여 더 큰 구조를 만드는 패턴이다. 독립적으로 개발된 객체를 하나의 객체인 것처럼 사용이 가능하게 한다.

 

1. 어댑터 패턴 (Adapter)

- 호환성이 없는 인터페이스를 함께 사용할 수 있도록 한다.

- 인터페이스를 교체하는 경우 코드의 재사용성이 높다.

 

2. 브리지 패턴 (Bridge)

- 추상적 개념과 구체적 구현을 서로 다른 두 개의 인터페이스로 구현하는 디자인 패턴

- 구현부와 추상층을 독립적으로 확장할 수 있다.

 

3. 합성 패턴 (Composite)

- 객체들의 관계를 트리 구조로 구성하여 전체-부분 관계를 표현하는 패턴이다.

- 클라이언트는 전체와 부분을 구분하지 않고 동일한 인터페이스를 사용할 수 있다.

 

4. 데코레이터 패턴 (Decorator)

- 객체의 결합을 통해 기능을 동적으로 유연하게 확장할 수 있게 해주는 패턴이다.

- 기본 기능에 추가할 수 있는 기능의 종류가 많은 경우, 각 추가 기능을 Decorator 클래스로 정의한 후 결합하여 사용한다.

 

5. 퍼사드 (Facade)

- 복잡한 코드 바깥에서 간략화 된 인터페이스를 제공해주는 패턴이다.

- 공통적인 작업에 대해 간편한 메소드를 제공한다.

 

6. 플라이웨이트 (Flyweight)

- 어떤 클래스의 인스턴스 한 개만 가지고 여러 개의 가상 인스턴스를 제공하고 싶을 때 사용하는 패턴

- 메모리 사용공간을 줄이고 성능을 향상시키는 데 사용한다.

 

7. 프록시 (Proxy)

- 실제 기능을 수행하는 객체 대신, 가상의 객체를 사용해 로직의 흐름을 제어하는 패턴

- 어떤 클래스의 객체 생성이 오래 걸리는 경우, 그 일을 분업하여 proxy클래스에서 처리할 수 있는 작업을 처리하고 나머지는 실제 클래스의 객체를 생성하고 위임하는 방식이다.

 

'CS Study' 카테고리의 다른 글

디자인 패턴 - 생성 패턴  (0) 2022.05.16
함수형 프로그래밍  (0) 2022.05.09