중복되는 정보를 공유 하는 방법을 플라이 웨이트 패턴이라고 합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| class CImageData{ int m_nIdx; int m_nWidth, m_nHeight; char *m_pData;public: char *GetData(){return m_pData;} int GetWidth(){return m_nWidth;} int GetHeight(){return m_nHeight;}};class CImagePool //CImageData의 객체 소유권은 CImagePool에 있다.{public: CImageData *GetImageData(int a_nIdx); }; |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| class CQuestInfo{ int m_nQuestNo; //퀘스트식별번호 char m_szTItle[32]; //퀘스트이름 char m_szDesc[512]; //퀘스트설명 int m_nQuestMissionNo; //퀘스트목표에할당된번호 int m_nCompensateNo; //퀘스트보상번호 int m_nRequireProgressQuantity; //목표 달성을 위해 필요한 진행량 //기타등등..};class CQuestInfoPool //CQuestInfo의객체소유권은CQuestInfoPool에게있다{public: CQuestInfo *GetQuestInfo(int a_nQuestNo);};class CQuestData{ int m_nIdx; //퀘스트고유번호 int m_nProgressQuantity; //진행량 CQuestInfo *m_pcQuestInfo;public: CQuestData(); ~CQuestData(){} //여기서m_pcQuestInfo를delete 하면큰일난다. void SetQuestInfo(CQuestInfo *a_pcQuestInfo) { m_pcQuestInfo = a_pcQuestInfo; }}; |
이렇게 고정된 정보와 변할 수 있는 정보를 나누고, 고정된 정보를 묶고 링크해서 사용함으로써 플라이 웨이트 패턴을 구현할 수 있습니다.
댓글 없음:
댓글 쓰기