본문 바로가기

디자인 패턴15

디자인 패턴 공부 - 경량패턴의 학습 -2- 안녕하세요? 지난번 포스팅에서 어떻게 경량 패턴을 공부 하면서 chat GPT가 만들어 준 예제를 그저 분석해 보기만 했었는데, 그것만 가지고서는 어떻게 되지 않아서, 한번 제 식대로 변형을 시켜서 써먹어 보는 실습을 진행해 보고자 했습니다. 일단 이렇게 까지 할 필요가 있느냐 하지만, 이렇게 안 하면 제 것으로 만들기 안되는 것이 문제라면 문제라는 생각이 듭니다. 먼저 인터페이스 IDatas를 선언해 주고 나서, 다음으로 몬스터 데이터라는 클래스를 만들어 주도록 합니다. 여기서 중요한 것은 역시 클래스명을 선언하고 나서 public 클래스 명으로 클래스가 선언이 될 때 매개변수를 받아올 수 있도록 만드는 것 입니다. 그 다음으로 몬스터를 생성하기 위한 몬스터 팩토리 클래스를 만들어 보도록 합니다. 여기.. 2024. 2. 20.
디자인 패턴 공부 - 경량패턴의 학습 -1- 안녕하세요? 경량 패턴이라고 영어로는 Flyweight Pattern(플라이웨이트 패턴)이라는 것을 학습해 보고자 합니다. 일단 이걸 학습하기 위해서 어떻게 시작해야 할지 감도 전혀 잡히지 않았는데, 일단은 chat GPT에서 생성해준 코드를 바탕으로 해서 한번 따라하기하면서 실습을 들어가 보았습니다. 먼저 클래스 하나에다가 interface선언을 해서 상속을 시켜 주도록 합니다. 일단 이 단계에서는 저는 이걸 어떻게 사용하는 것인지, 아니 왜 사용하는 것인지 몰랐습니다. 일단 여기서 알 수 있는 것은 class를 하나하나 오브젝트로 만든 다음에, 이걸 자료형 - 여기서는 딕셔너리 형에 집어넣기 위해서 이 interface를 사용했다는 것은 알 수 있었습니다. 여기서 중요한 것은 하나의 큰 변수가 달라지.. 2024. 2. 20.
디자인 패턴 공부 - 명령패턴의 학습 -5- 안녕하세요? 어떻게 디자인 패턴에 대해서 공부를 하면서 디자인 패턴을 왜 처음으로 마주했냐 하면, 게임을 만들면서 피할 수 없는 문제가 입력을 하는 일이 있어야 하고, 이 과정을 생각하면 처음으로 마주치는 문제라면 문제라고 할 수 있어 보입니다. 아무튼 지난번 포스팅에서 못 다한 것이 있는데, 바로 명령을 일으키는, 즉 키보드를 사용해서 입력을 하는 게임이라고 치면, 여기서 바로 버튼에 해당할 수 있는 부분인 invoke를 만들어서 할당하는 것을 잊었습니다. 먼저 시작한 것은 바로 command 클래스를 상속받아 사용할 수 있는 이 명령 자체의 클래스를 일단 리스트에 담아줘야 하는 문제가 있습니다. 이 문제를 해결하기 위해서 일단 object라고 하는 자료형을 가지고 왔습니다. 이걸 사용하면, 메모리상에.. 2024. 2. 17.
디자인 패턴 공부 - 명령패턴의 학습 -4- 안녕하세요? 지난번 포스팅에서 어떻게 해서 플레이어 - 명령을 게임상에서 내리면, 이를 실행할 캐릭터를 지정하는 법에 대해서 한번 코드를 작성했습니다만, 여전히 문제점이 있다면 있습니다. 바로 명령을 일일히 클래스안의 메서드에 집어넣는 좀 비효율적인 과정이 있기는 있었습니다. 이번에는 이런 것을 극복하고, 어떻게 명령도 리스트 형식으로 만들어서 한꺼번에 입력을 할 수 없는지에 대해서 한번 알아 보기로 했습니다. 먼저 위 스크린샷에서 볼 수 있는 것처럼 Add메서드를 써서 일일히 리스트 형식의 변수에 자료를 입력하지 않고, 아예 하나의 리스트를 선언한 다음, 이 리스트만 넣도록 만들어 보았습니다. 그리고 나서 기존에 있는 클래스에서 한번 리스트를 선언하는 부분은 주석처리를 하도록 하고, 그 다음에는 실행을.. 2024. 2. 15.