디자인 패턴 - 구조 패턴

GonnabeAlright·2022년 2월 21일
0
post-thumbnail

구조 패턴 (Structural Pattern)

구조 패턴은 클래스나 객체들을 조합하여 더 큰 구조로 만들 수 있게 해주는 패턴으로 총 7개의 패턴이 있다.

  • 구조 패턴은 구조가 복잡한 시스템을 개발하기 쉽게 도와준다.

어댑터 (Adapter)

  • 호환성이 없는 클래스들의 인터페이스를 다른 클래스가 이용할 수 있도록 변환해주는 패턴이다.
  • 기존의 클래스를 이용하고 싶지만 인터페이스가 일치하지 않을 때 이용한다.

브리지 (Bridge)

  • 구현부에서 추상층을 분리하여, 서로가 독립적으로 확장할 수 있도록 구성한 패턴이다.
  • 기능과 구현을 두 개의 별도 클래스로 구현한다.

컴포지트 (Composite)

  • 여러 객체를 가진 복합 객체와 단일 객체를 구분 없이 다루고자 할 때 사용하는 패턴이다.
  • 객체들을 트리 구조로 구성하여 디렉터리 안에 디렉터리가 있듯이 복합 객체 안에 복합 객체가 포함되는 구조를 구현할 수 있다.

데코레이터 (Decorator)

  • 객체 간의 결합을 통해 능동적으로 기능들을 확장할 수 있는 패턴이다.
  • 임의의 객체에 부가적인 기능을 추가하기 위해 다른 객체들을 덧붙이는 방식으로 구현한다.

퍼싸드 (Facade)

  • 복잡한 서브 클래스들을 피해 더 상위에 인터페이스를 구성함으로써 서브 클래스들의 기능을 간편하게 사용할 수 있도록 하는 패턴이다.
  • 서브 클래스들 사이의 통합 인터페이스를 제공하는 Wrapper 객체가 필요하다.

플라이웨이트 (Flyweight)

  • 인스턴스가 필요할 때마다 매번 생성하는 것이 아니고 가능한 한 공유해서 사용함으로써 메모리를 절약하는 패턴이다.
  • 다수의 유사 객체를 생성하거나 조작할 때 유용하게 사용할 수 있다.

프록시 (Proxy)

  • 접근이 어려운 객체와 여기에 연결하려는 객체 사이에서 인터페이스 역할을 수행하는 패턴이다.
  • 네트워크 연결, 메모리의 대용량 객체로의 접근 등에 주로 이용한다.

0개의 댓글