중복되는 정보를 공유 하는 방법을 플라이 웨이트 패턴이라고 합니다.
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; } }; |
이렇게 고정된 정보와 변할 수 있는 정보를 나누고, 고정된 정보를 묶고 링크해서 사용함으로써 플라이 웨이트 패턴을 구현할 수 있습니다.
댓글 없음:
댓글 쓰기