본문 바로가기
유니티5 독학 & 게임 제작

디자인 패턴 공부 - 경량패턴의 학습 -1-

by 인터넷떠돌이 2024. 2. 20.
반응형

안녕하세요?

 

경량 패턴이라고 영어로는 Flyweight Pattern(플라이웨이트 패턴)이라는 것을 학습해 보고자 합니다. 일단 이걸 학습하기 위해서 어떻게 시작해야 할지 감도 전혀 잡히지 않았는데, 일단은 chat GPT에서 생성해준 코드를 바탕으로 해서 한번 따라하기하면서 실습을 들어가 보았습니다.

 

 

먼저 클래스 하나에다가 interface선언을 해서 상속을 시켜 주도록 합니다. 일단 이 단계에서는 저는 이걸 어떻게 사용하는 것인지, 아니 왜 사용하는 것인지 몰랐습니다.

 

 

일단 여기서 알 수 있는 것은 class를 하나하나 오브젝트로 만든 다음에, 이걸 자료형 - 여기서는 딕셔너리 형에 집어넣기 위해서 이 interface를 사용했다는 것은 알 수 있었습니다. 여기서 중요한 것은 하나의 큰 변수가 달라지는 것이 있는게 아니면, 기존의 딕셔너리안에 들어가 있는 클래스를 계속해서 활용하라는 의미가 됩니다.

 

 

그 다음으로 클라이언트 항목에서 눈여겨 볼 것이 하나 있습니다. 바로 C#에서 어떻게 하면 클래스가 받는 매개변수를 지정할 수 있는가 인데, 일단 클래스를 선언하고 나서 public 클래스명 (자료형 변수명)을 선언하는 것으로 C#에서 이를 가능하게 만들어 줄 수 있습니다.

 

 

그리고 실행을 하는 메인이 되는 프로그램에서 이 클래스를 어떻게 메모리에 넣어서 오브젝트화 시키는 과정을 일으켜야 합니다. 이렇게 해서 작업을 하나하나 되어 가기는 갑니다만, 아직도 제대로 무엇이 무엇인지 감은 안 잡히고 있습니다.

 

 

그리고 좀 실망히기는 합니다만, 일단 원을 그릴줄 알있지만, 그건 아니기는 아니었습니다. 일단 여기까지가 견본을 보고 그대로 따라 한 것이고, 이제 제 방식대로 무언가를 변형을 주어서 어떻게 써먹어 보기는 봐야 합니다. 이 경량 패턴이 주로 게임에서 숲을 표현할 때 나무가 비슷비슷해 보인다는 것을 알고는 어떻게 위치같은 것만 빼고 다 돌려 써서 메모리를 아끼는 방식으로 진행이 된다고 합니다. 역시 게임을 만드는 데 필요하다는 생각이 듭니다.

반응형