티스토리 뷰

관련성 있는 객체 집합을 생성하는 인터페이스를 제공하는 방법을 추상화 팩토리 패턴이라고 한다.

팩토리는 어떤 객체가 생성될지를 전담하는 패턴이지만, 추상화 팩토리는 어떤 분류의 객체 집합을 생성할 것인지를 정해주는 패턴이라 보면 된다.

class Character { //각종멤버 }; class User : public Character { //각종멤버 }; class Npc : public Character { //각종멤버 }; class Item { //각종멤버 }; class UserItem : public Item { //각종멤버 }; class NpcItem : public Item { //각종멤버 }; class ICharacterFactory { public: virtual Character *CreateCharacter() = 0; virtual Item *CreateItem() = 0; }; class UserFactory : public ICharacterFactory { virtual Character *CreateCharacter(){return new User;} virtual Item *CreateItem(){return new UserItem;} }; class NpcFactory : public ICharacterFactory { virtual Character *CreateCharacter(){return new Npc;} virtual Item *CreateItem(){return new NpcItem;} }; void Act(ICharacterFactory *pCharacterFactory) { Character * pCharacter = pCharacterFactory->CreateCharacter(); //처리코드 delete pCharacter; Item *pItem = pCharacterFactory->CreateItem(); //처리코드 delete pItem; }


댓글