- 순서
- 디자인패턴이란?
- 생성패턴(싱글톤 패턴)
- 구조패턴(데코레이 패턴)
- 행동패턴(옵저버 패턴)
- 디자인패턴이란?
- 개발 시 반복적으로 등장하는 문제를 해결하기 위한 일반화된 솔루션
- 생성패턴(싱글톤 패턴)
- 생성패턴?: 새로운 것을 만들어내는 방법과 관련된 패턴
- 싱글톤 패턴이란?: 프로그램 전체에서 단 하나의 인스턴스만 존재하도록 보장하고, 해당 인스턴스에 전역적으로 접근할 수 있도록 하는 디자인 패턴
- 핵심
- 인스턴스가 월드에 하나만 존재해야하며 전역으로 접근해서 사용해야할 때
- 생성자를 외부에서 호출할 수 없도록 막고, 정적 메서드를 통해 인스턴스를 반환해야 할 때
- 주의해야하는 점
- 과도하게 사용하면 유연성과 확장성이 떨어지기 때문에 꼭 필요한 경우에만 사용.
- Unreal Engine 게임 개발에서 활용 예제 : 전역 데이터 저장이나 게임 전반을 통제하는 "컨트롤 센터" 역할로 사용
- 게임 전체에서 공통 설정 관리
- 세이브/로드 관리 시스템
- 글로벌 데이터(플레이어 정보 등)유지
- 구조패턴(데코레이 패턴)
- 구조패턴이란?: 여러 부품을 조립하고 연결하는 방법에 대한 패턴 - 객체들의 구조를 어떻게 구성할 것인지
- 데코레이 패턴이란?: 기존 객체의 구조는 바꾸지 않고, 동적으로 기능을 추가할 수 있게 해주는 패턴
- 핵심
- 상속을 쓰지 않고도 기능 확장이 가능함
- 기존 클래스에 기능을 추가할 때 클래스를 감싸서 기능을 덧붙이는 구조임
- Unreal Engine 게임 개발에서 활용 예제 : AI의 행동에 논리 조건을 붙이는데 사용
- 플레이어가 근처에 있으면 공격
- 체력이 낮으면 도망 등 AI행동 조건 부여
- 행동패턴(옵저버 패턴)
- 행동패턴이란?: 부품이 서로 어떻게 상호작용할지에 대한 패턴 - 특정 객체가 변할 때 다른 객체들에 변환된 상태를 어떻게 전달할지
- 옵저버 패턴이란?: 한 객체의 상태 변화가 있을 때, 그것에 의존하는 여러 객체에게 자동으로 알림을 보내는 패턴(ex.구독한 sns알림)
- 핵심
- 발행자(Subject)와 구독자(Observer)로 구성
- Subject가 상태 변화를 감지하면 Observer들에게 알림
- Unreal Engine 게임 개발에서 활용 : 이벤트 기반 시스템에서 핵심
- 체력감소 => UI 업데이트
- 퀘스트 아이템 획득 => 퀘스트 시스템에 알림
- 타이머 => 시간 제한 미션 종료
'C++ > 디자인패턴' 카테고리의 다른 글
| [C++]구조패턴/어댑터 패턴 (0) | 2025.07.28 |
|---|---|
| [C++]생성 패턴/빌더 패턴 (2) | 2025.07.25 |
| [C++]생성 패턴/팩토리 패턴 (3) | 2025.07.23 |
| [C++] 행동 패턴/전략, 스트래티지 패턴(Strategy Pattern) (0) | 2025.07.11 |
| [C++] 생성 패턴/싱글톤 패턴 (0) | 2025.06.20 |