런타임노트

[헤드퍼스트 디자인패턴] 48일차. 636-649pg | 다양한 다른 패턴들 본문

책책책 책을 읽읍시다‼ ver.개발/[ 헤드퍼스트 디자인패턴 ]

[헤드퍼스트 디자인패턴] 48일차. 636-649pg | 다양한 다른 패턴들

D269 2023. 6. 25. 10:53
728x90

 

 

48일차


헤드퍼스트 디자인패턴 [8주차_토요일]
636-649pg


요약

 

 

**CHAPTER 14. 다양한 패턴 빠르게 알아보기  (feat. 기타 패턴)**

앞에서 소개하지 못한 패턴들 간략하게 훑어보기.

 

[ 책임 연쇄 패턴 (Chain of Responsivility) ]

- 1개의 요청을 2개 이상의 객체에서 처리해야 한다면!

- 주어진 요청을 검토하는 객체 사슬을 생성한다. 그 사슬에 속해 있는 각 객체는 자기가 받은 요청을 검사해서 직접 처리하거나 사슬에 들어있는 다른 객체에게 넘긴다.

 

[ 플라이웨이트 패턴 ]

- 어떤 클래스의 인스턴스 하나로 여러 개의 '가상 인스턴스'를 제공하고 싶다면..!

- Tree 객체를 수 천 개 만드는 대신 시스템을 조금 고쳐서 Tree의 인스턴스는 하나만 만들고 모든 나무의 상태를 클라이언트 객체가 관리하도록 한다.

 

[ 인터프리터 패턴 ]

- 어떤 언어의 인터프리터를 만들 때

- 문법과 구문을 번역하는 인터프리터 클래스를 기반으로 간단한 언어를 정의한다.

- 언어에 속하는 규칙을 나타내는 클래스를 사용해서 언어를 표현한다.

 

[ 중재가 패턴 ]

- 서로 관련된 객체 사이의 복잡한 통신과 제어를 한 곳으로 집중하고 싶다면!

 

[ 메멘토 패턴 ]

- 객체를 이전의 상태로 복구해야 한다면

- 시스템에서 핵심적인 기능을 담당하는 객체의 상태 저장, 핵심적인 객체의 캡슐화 유지

 

[ 프로토타입 패턴 ]

- 어떤 클래스의 인스턴스를 만들 때 자원과 시간이 많이 들거나 복잡하다면

- 기존 인스턴스를 복사하기만 해도 새로운 인스턴스를 만들 수 있다.

- 클라이언트 코드에서 어떤 클래스의 인스턴스를 만드는지 전혀 모르는 상태에서도 새로운 인스턴스를 만들 수 있다.

 

[ 비지터 패턴 ]

- 다양한 객체에 새로운 기능을 추가해야 하는데 캡슐화가 별로 중요하지 않다면.

- 비지터 객체는 트래버서(Traverser)객체와 함께 돌아간다.

- 트래버서는 컴포지트 패턴을 쓸 때, 복합 객체 내에 속해 있는 모든 객체에 접근하는 일을 도와주는 역할을 한다. 

 

 

 

 




드디어 길고 긴 48일의 대장정이 끝났다~~!!

중간중간 고비도 있었지만 끝내서 가장 뿌듯하다.

4기도 참여했는데 또 끝내야쥐~

 

 

 

 

 

 

 

728x90
반응형