디자인 패턴 - (3) 구조 패턴

박영준·2023년 1월 11일
0

Java

목록 보기
39/111

1. '구조 패턴' 이란?

  • 클래스와 객체의 구성에 관련된 패턴

  • 클래스나 객체를 조합해, 더 큰 구조를 만드는 패턴

  • 예시
    서로 다른 인터페이스를 지닌 2개의 객체를 묶어 단일 인터페이스를 제공,
    객체들을 서로 묶어 새로운 기능을 제공

2. 종류

1) 어댑터 (Adapter)

  • 호환성이 없는 클래스들의 인터페이스를 다른 클래스가 이용할 수 있도록 변환

  • 기존의 클래스를 이용하고 싶지만, 인터페이스가 일치하지 않을 때 이용

2) 브리지 (Bridge)

  • 구현부에서 추상층을 분리하여, 서로가 독립적으로 확장할 수 있도록 구성한 패턴

  • 기능과 구현을 두 개의 별도 클래스로 구현

3) 컴퍼지트 (Composite)

  • 여러 객체를 가진 복합 객체와 단일 객체를 구분 없이 다루고자 할 때 사용

  • 객체들을 트리 구조로 구성하여
    디렉터리 안에 디렉터리가 있듯이, 복합 객체 안에 복합 객체가 포함되는 구조를 구현 가능

4) 데코레이터 (Decorator)

  • 객체 간의 결합을 통해, 능동적으로 기능들을 확장할 수 있는 패턴

  • 임의의 객체에 부가적인 기능을 추가하기 위해, 다른 객체들을 덧붙이는 방식으로 구현

5) 파사드 (Facade)

  • 복잡한 서브 클래스들을 피해 더 상위에 인터페이스를 구성함으로써
    서브 클래스들의 기능을 간편하게 사용할 수 있도록 하는 패턴

  • 서브 클래스들 사이의 통합 인터페이스를 제공하는 Wrapper 객체가 필요

6) 플라이웨이트 (Flyweight)

  • 인스턴스가 필요할 때마다 매번 생성하는 것이 아니고,
    가능한 한 공유해서 사용함으로써 메모리를 절약하는 패턴

  • 다수의 유사 객체를 생성/조작할 때 유용하게 사용

7) 프록시 (Proxy)

참고: 프록시 (Proxy, Proxy Server), 즉시로딩, 지연로딩


참고: 디자인 패턴(Design Pattern)이란?
참고: 디자인 패턴 - 구조 패턴

profile
개발자로 거듭나기!

0개의 댓글