From e8fc516ae285b6cdef4850a0d3c93eb839502261 Mon Sep 17 00:00:00 2001 From: "Jiyeon Baek (genie)" <58380158+100Gyeon@users.noreply.github.com> Date: Sat, 19 Oct 2024 04:51:53 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20=EC=B1=95=ED=84=B0=206=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\353\260\261\354\247\200\354\227\260.md" | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 "\354\261\225\355\204\260_6/\353\260\261\354\247\200\354\227\260.md" diff --git "a/\354\261\225\355\204\260_6/\353\260\261\354\247\200\354\227\260.md" "b/\354\261\225\355\204\260_6/\353\260\261\354\247\200\354\227\260.md" new file mode 100644 index 0000000..7365bbe --- /dev/null +++ "b/\354\261\225\355\204\260_6/\353\260\261\354\247\200\354\227\260.md" @@ -0,0 +1,29 @@ +# CHAPTER 06 디자인 패턴의 유형 + +## 배경 + +**어떤 문제를 해결하느냐**에 따라 디자인 패턴을 3가지 유형으로 분류 (생성, 구조, 행위) + +## 생성 패턴 + +- 주어진 상황에 적합한 **객체를 생성**하는 방법에 중점 +- 객체 생성 방식이 프로젝트 복잡성을 증가시키는 문제를 해결하고자 함 +- 생성자, 팩토리, 추상, 프로토타입, 싱글톤, 빌더 패턴 + +## 구조 패턴 + +- 객체의 구성과 객체 간의 **관계를 인식**하는 방법에 중점 +- 변경된 부분이 다른 부분에는 영향 없도록 만들고, 설계 목적에서 벗어난 부분을 개선하도록 도움 +- 데코레이터, 퍼사드, 플라이웨이트, 어댑터, 프록시 패턴 + +## 행위 패턴 + +- 객체 간 **커뮤니케이션을 개선**하는 방법에 중점 +- 객체 간 커뮤니케이션 패턴을 감지하고 책임을 분배 → 커뮤니케이션 유연성 ↑, 객체의 행위 추상화 +- 이터레이터, 중재자, 관찰자, 방문자 패턴 + +## 디자인 패턴의 분류 + +GoF의 디자인 패턴 23개를 요약한 [분류표](https://www.hanbit.co.kr/channel/category/category_view.html?cms_code=CMS6713033092) + +> 다음 장부터가 진짜 디자인 패턴 공부 시작이겠네요 🧐