공부 학습

디자인 패턴 - 관계형 패턴

Multitab 2022. 11. 8. 18:50
더보기
  • 생성 디자인 패턴
    • 싱글턴 패턴
    • 추상 팩토리 패턴
    • 팩토리 메소드 패턴
  • 행동 디자인 패턴
    • 템플릿 메소드 패턴
    • 상태 패턴
    • 반복자 패턴
    • 전략 패턴
    • 옵저버 패턴
  • 구조 디자인 패턴
    • 데코레이터 패턴
    • 프록시 패턴
    • 컴포지트 패턴
    • 어댑터 패턴
    • 퍼사드 패턴
  • 관계형 패턴
    • 브릿지 패턴
    • 책임 연쇄 패턴
    • 플라이웨이트 패턴
    • 인터프리터 패턴
    • 중재자 패턴
    • 메멘토 패턴
    • 프로토타입 패턴
    • 비지터 패턴

관계형 패턴


브릿지 패턴

  • 구현부와 추상층을 분리하여 각각 독립적으로 변형, 확장이 가능한 패턴
  • 기능과 구현을 별도의 클래스에서 구현

책임 연쇄 패턴

  • 요청을 처리할 수 있는 처리 객체의 집합으로 만들어 결합을 느슨하게 만들기 위한 디자인 패턴
  • 요청을 처리할 수 있는 객체를 찾을 수 있을때까지 집합에 요청을 전달하는 패턴
  • 발신자와 수신자를 분리하며 요청을 처리할 수 있는 객체가 여러개 일때 사용
  • 별도의 처리객체(Handler)를 명시적으로 지정하고 싶지 않을때 사용

플라이웨이트 패턴

  • 클래스의 인스턴스 1개를 가지고 여러개의 객체에 '가상 인스턴스'를 제공하고 싶을때 사용되는 패턴
  • 상태 구조를 플라이웨이트 오브젝트로 지정하여 공유해 재사용할수 있도록 저장한다.
  • 객체를 가볍게 만들어 메모리 사용을 줄이는 패턴

인터프리터 패턴

  • 각 기호와 어절마다 클래스를 지정하여 클라이언트의 의도를 실행하고 인터페이스를 제공하는 패턴
  • 컴포지트 패턴의 인스턴스이다.

중재자 패턴

  • 객체의 상호작용을 모아놓은 객체를 별도로 정의
  • 프로그램의 실행행위를 변경할 수 있기 때문에 행위 패턴으로 간주
  • 직접 통신이 사라지고 중재자를 거쳐 통신함
  • 통신객체간의 의존성을 줄일수 있어 소프트웨어의 결합도를 낮춤

메멘토 패턴

  • 객체를 이전 상태로 되돌릴 수 있는 기능을 제공하는 패턴
  • Originator, Caretaker, Memento 객체가 존재
    • Originator : 내부 상태를 보유하고 있는 기능
    • Caretaker : Originator에게 Memento 객체를 요청해하는 기능, 현상태를 저장하는 일련의 명령을 수행
    • Memento 이전 상태로 돌리기 위해 Memento 객체를 Originator로 반환
  • 객체 내부상태와 이전 상태로 복구하는 기능에 책임을 가짐
  • 매맨토를 생성한 오리지네이터만 접근을 허용한다.

프로토타입 패턴

  • 생성할 객체의 타입이 프로토타입 인스턴스로부터 결정되도록하며 생성시 자신을 복제하게 한다.
  • creator 클래스를 하위 클래스로 귀속하는 것을 피할수 있게 해준다.
  • 객체 생성에 소요되는 고유 비용을 줄여준다.
  • 프로토타입 패턴과 추상 팩토리 패턴의 하위 종류로 볼수있다.

비지터 패턴

  • 알고리즘을 객체 구조에서 분리시키는 패턴
  • 구조를 수정하지 않고 실질적인 동작을 기존의 객체 구조에 추가할수 있는 패턴
  • 개방- 폐쇄 원칙을 적용하는 방식