디자인 패턴이란 개발 시 반복적으로 등장하는 문제를 해결하기 위한 일반화된 솔루션이라고 정의할 수 있다.
디자인 패턴의 구분
크게 3개로 구분된다.
- 생성(Creational) 패턴
새로운 것을 만드는 방법과 관련된 패턴 - 구조(Structual) 패턴
조립하고 연결하는 방법에 대한 패턴 - 행동(Behavioral) 패턴
어떻게 상호작용할지에 대한 패턴
생성 패턴
싱글톤 패턴
예를 들어 싱글 게임을 만든다고 할 때, 한명의 플레이어가 제어할 수 있는 대상은 하나만 존재해야 한다.
이 때 싱글톤 패턴을 적용하여 구현할 수 있다.
객체의 생성 및 대입을 `private`으로 하고 `getInstance()`를 통해서만 인스턴스를 받는다.
이렇게 객체를 하나만 생성해서 이후에 호출되는 생성자에 대해서는 기존의 인스턴스를 전달하는 패턴을 싱글톤 패턴이라고 한다.
구조 패턴
데코레이터 패턴
데코레이터 패턴은 객체의 핵심 기능을 보존하면서, 동적으로 확장할 수 있도록 감싸주는 디자인 패턴이다.
A 클래스를 감싸는 A 데코레이터 클래스를 생성하여, 내부에 A의 기능을 가지도록 하고 추가적인 확장이 필요할 때 A를 확장하는게 아니라 A 데코레이터 클래스를 상속받아 사용하는 식으로 동작한다.
행동 패턴
옵저버 패턴
옵저버 패턴은 여러 객체에 자신이 관찰 중인 객체에 발생하는 모든 이벤트에 대하여 알리는 구독 메커니즘을 정의할 수 있도록 하는 디자인 패턴이다.
유튜브에서 새로운 영상이 올라온다고 계속 알림이 오는 것이 아니라 구독한 채널에서만 알림이 오는 것처럼 옵저버 패턴을 사용하여 옵저버를 상속해 구현한 클래스만 변경을 적용하는 식으로 동작한다.
'본 캠프 > Note' 카테고리의 다른 글
[C++과 Unreal Engine으로 3D 게임 개발] Actor 클래스에 컴포넌트 추가하기 (0) | 2025.09.15 |
---|---|
[C++과 Unreal Engine으로 3D 게임 개발] C++ Actor 클래스 생성 및 삭제 (0) | 2025.09.15 |
[게임 개발자를 위한 C++ 문법] 객체지향적 설계 (0) | 2025.08.21 |
[게임 개발자를 위한 C++ 문법] STL 기초 (0) | 2025.08.21 |
[게임 개발자를 위한 C++ 문법] 템플릿 (0) | 2025.08.20 |