[C++] 디자인 패턴

2024. 4. 17. 22:52언어 및 엔진/C++

디자인 패턴의 정의

상황에 따라 자주 쓰이거나 효율적인 설계 방법을 정리한 코딩 방법론.
절대적인 모든 상황의 해결책은 아니다.

디자인 패턴의 종류

생성 패턴 : 추상 팩토리 패턴, 빌더 패턴, 팩토리 매서드 패턴, 프로토타입 패턴, 싱글톤 패턴
구조 패턴 : 어댑터 패턴, 브릿지 패턴, 합성 패턴, 데코레이터 패턴, 파사드 패턴, 플라이웨티프 태너, 프록시 패턴
행동 패턴 : 책임연쇄 패턴, 커맨드 패턴, 해석자 패턴, 반복자 패턴, 옵저버 패턴, 전략 패턴, 템플릿 메서드 패턴, 방문자 패턴, 중재자 패턴, 상태 패턴, 기념품 패턴

잘 쓰이는 디자인 패턴들

-싱글톤(생성 패턴)
하나의 메모리를 공유하여 사용
무분별하게 객체의 인스턴스가 생성되는 것을 막아줌

-상태패턴(State Pattern)(행동 패턴)
상태를 객체화 한 패턴.
복잡도를 떨어뜨리기 위한 -> 플레이어의 상태를 나눔

-팩토리패턴(생성 패턴)
부모 클래스에 알려지지 않은 하위 클래스를 생성
객체를 만들어 반환하는 함수를 제공, 초기화 과정을 외부에서 보지 못하도록 처리

-추상 팩토리 패턴 : 동일한 주제의 다른 팩토리를 묶음
인터페잇를 이용하여 서로 연관되어 있는 객체를 생성

-팩토리 메소드 패턴 : 생성할 객체의 클래스를 국한하지 않고 객체 생성
클래스의 인스턴스를 만드는 것을 서브클래스에 맡김

-옵져버패턴(행동 패턴)
어떤 클래스에서 변화가 일어났을 때 다른 클래스에 통보

-책임연쇄 패턴(행동 패턴) 
자신이 책임을 못 질것 같으면 책임은 자동으로 연결되어있는 다음 책임자에게 넘어감

-프록시 패턴(구조 패턴)
접근 조절, 비용 절감, 복잡도 감소를 위해 접근이 힘든 객체에 대한 대역을 제공
다른 무언가와 이어지는 인터페이스의 역할을 함

 

'언어 및 엔진 > C++' 카테고리의 다른 글

[C++] Pointer  (0) 2024.04.17
[C++] Call by value / Call by reference  (0) 2024.04.17
[C++] Struct / Class  (0) 2024.04.17
[C++] Malloc / Free & New / Delete  (0) 2024.04.17
[C++] 인스턴스 화  (0) 2024.04.17