프로토타입 패턴은 원형이 되는 인스턴스를 사용하여 생성할 객체의 종류를 명시하고, 이렇게 만든 견본을 복사해서 새로운 객체를 생성합니다.
5.1 몬스터 스포너
템플릿을 사용하여 해결하는 방법
class Spawner {
public:
virtual ~Spawner() {}
virtual Monster* spawnMonster() = 0;
};
template <class T>
class SpawnerFor : public Spawner {
public:
virtual Monster* spawnMonster() { return new T(); }
};
//사용법
Spawner* ghostSpawner = new SpawnerFor<Ghost>();
Monster* monster_ghost = ghostSpawner->spawnMonster();
원형이 되는 인스턴스(Ghost)를 사용하여 생성할 객체(Spawner)의 종류를 명시하고 새로운 객체 (monster_ghost)를 생성한다.
'읽은 책 > 게임 프로그래밍 패턴' 카테고리의 다른 글
7. 디자인 패턴 - 상태(state) (0) | 2022.07.15 |
---|---|
6. 디자인 패턴 - 싱글턴 (0) | 2022.07.14 |
4. 디자인 패턴 - 관찰자, 감시자(observer) (0) | 2022.07.13 |
3. 디자인 패턴 - 경량(flyweight) (0) | 2022.07.13 |
2. 디자인 패턴 - 명령(command) (0) | 2022.07.13 |