행위와 관련된 GoF 디자인패턴의 종류는 다음 9가지가 있다.
패턴 | 설명 | 활용 분야 |
책임-연쇄 ·단계 |
· 자바스크립트의 프로미스 구문과 유사 · 제이쿼리의 체이닝과 같은 방식이 대표적인 사례 |
· 단계시스템 구축 (정부24) · 도미노피자 단계별 주문 |
커맨드 ·실행 |
· 한번의 명령으로 복잡한 여러 작업을 실행할 때 사용할 수 있음 · 스마트홈과 같은 시스템에서 원클릭 스마트 시스템이 대표적인 사례 |
· 스마트홈 원클릭 시스템 · 자판기 주문 (원클릭 관련 시스템) |
스테이트 ·라이브 |
· 변경되는 외부상황을 캐치할 때 사용할 수 있음 · 실시간으로 변하는 데이터 분석 및 상황을 알려주는 시스템에 적용 |
· 빅데이터 상황판 · 실시간 미세먼지 상황 |
스트래티지 ·선택 |
· 단일 인터페이스에서 여러 기능을 선택할 수 있는 분야에 사용가능 · 게임에서 캐릭터의 다양한 무기를 선택하는 시스템이 대표적인 사례 |
· 게임 무기시스템 · 선택형 시뮬레이션 구현 |
미디에이터 ·반응 |
· 하위 레벨에서 발생하는 변화를 캐치하고, 해당 정보를 상위에서 판단 & 분석 & 결론을 내릴 수 있는 구문 · 유저 반응형 GUI시스템이 대표적인 사례 |
· 유저 반응형 GUI · IOT센서결합 |
템플릿 메서드 ·소개 |
· 스트래티지 패턴 구현에 포함되며, 병합 문제를 고려하여 스트래티지를 사용하는 편을 추천 |
· 퀴즈 시스템 · MBTI검사 |
옵저버 ·알림 |
· 실시간으로 변경 상태를 알려주는 패턴이며, State패턴과의 차이점은 중앙처리 알고리즘에 달려 있음 · State패턴은 특정분야의 같은 업무 내에서 사용하며(분석 가능) |
· 댓글&메시지 알림 · 시스템 변경 알림 |
메멘토 ·되돌리기 |
· 히스토리를 저장하여, 특정 시간대로 되돌릴 수 있는 패턴 · 단독으로 사용하기보다 시스템 내부의 기능구현에 사용하기 좋음 |
· Undo 기능 · 히스토리 기능 |
인터프리터 ·가로채기 |
· 중간에서 데이터를 캐치하여 파싱할 수 있는 패턴 · 인터페이스로 전달되는 데이터를 외부의 특정 알고리즘으로 분석하거나 결과를 도출할 때 사용할 수 있음 |
· 언어 번역 · 데이터포맷 변경 |
비지터 ·특정검색 |
· 객체를 검사하는 데에 용이한 패턴 · 검사대상 객체의 내부에 visit()메서드를 상속하고 해당 메서드의 인자에 검사조건을 담은 Visitor클래스를 전달하는 방식 |
· DB컴포넌트 검색기능 · 검증시스템 |
이터레이터 ·통합검색 |
· 이터레이터는 자바스크립트의 for-of문에 적용되어 있음 · 객체를 돌아가며 검사하는 클래스와 이터레이터를 선언하는 클래스를 분리함으로써 검사대상에 의존하지 않는 알고리즘이 핵심 |
· 배열 검색 · 빅데이터 분석 |
'코드 스터디' 카테고리의 다른 글
『Zim.js』 간략정리 (0) | 2021.03.24 |
---|---|
클린 아키텍처 (0) | 2020.12.28 |
GoF디자인패턴「구조편」 (0) | 2020.12.14 |
GoF디자인패턴「생성편」 (0) | 2020.12.11 |
싱글톤 패턴 (0) | 2020.12.10 |
댓글