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

디자인 패턴 공부 - 명령패턴의 학습 -1-

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

안녕하세요?

 

지난번에 게임을 1인 개발을 해보면서 느낀 것이지만, 디자인 패턴에 대한 공부가 부족해서 가지가지로 무언가 코드가 소위 엉켜있는 스파게티 코드가 되어 버린 감이 있습니다. 그래서 이번에는 어느정도 이 공부를 해서 무언가를 하기 위해서 디자인 패턴에 대한 공부를 하려고 합니다만, 처음부터 무슨 무거운 것을 배우기 시작한 것일까요? 게임을 만들면서 많이 사용되는 패턴인 듯 한데, 그래서 일단 어려워도 익히기는 해보려고 시도해 보았습니다.

 

 

우선 유튜브에서 먼저 파이썬으로 알기 쉽게 강의한 내용이 있었는데, 그걸 저는 유니티 스크립트로 제작해야 하니까, 일단 C#으로 만들어 보았습니다. 우선 namespace안에  3개의 클래스를 정의한 다음에, 일단 메인이 되는 Main()메서드에서 실행을 시켜 보도록 합니다.

 

 

먼저 실행을 위해서 당장에 커맨드를 담당하는 Command라는 클래스를 지정하는 것이 아니라, 이 커맨드를 상속받아 사용하는 PrintCommand라는 클래스를 객체화 시킨다고 해야 할까요? 일단 메모리에 올려놓아서 작동할 수 있도록 만들어 주는 작업을 해 주도록 합니다.

그리고 나서 다음으로 이 메모리에 올라가 있는 클래스의 상속받은 메서드에서 작동할 수 있도록 메서드에 명령어 kick을 입력해 주도록 합니다.

 

 

그리고 나서 다음으로 한번 Command 클래스의 내용을 살펴 보도록 합니다. 여기서는 역시나 execute라는 메서드를 public으로 보유하고 있으면서, 명령의 내용은 단순하게 콘솔에 문자를 입력하라는 것이 전부 입니다. 문제는 제대로 상속을 시켜주기 위해서 잊으면 안되는 것이 있는데, 우선 상속시켜서 사용할 메서드는 void와 같이 무엇을 return해서 반환할지 결정해 주는 문자열 앞에다가 virtual 이라는 키워드를 입력해 주어야 합니다.

 

 

그리고 나서 상속을 받는 PrintCommand는 클래스 명 바로 옆에다가 콜론 (:)을 입력해 주는 것으로 해서 먼저 어느 클래스의 것을 상속받는지를 결정한 다음, 여기다가 상속받아서 사용할 메서드를 그대로 써도 되지만, 상속받은 클래스에서 추가로 변형해서 사용할 수 도 있습니다. 여기서 변형한다는 뜻의 키워드인 override라는 키워드를 달아주고 나서 새로운 라인을 입력해 주면 됩니다. 다만 이걸 사용할 때는 override는 반드시 public이라고 되어 있는 메서드에서만 사용할 수 있다는 것을 주의해야 합니다.

 

 

이렇게 해서 일단 상속을 받고 어떻게 그 상속받은 클래스에서 변형해서 하는 것 까지 실습을 해 보았습니다. 일단 이번 포스팅에서는 주로 C#에서 클래스의 상속과 그 상속받은 클래스에서 메서드 변형을 주로 해보았는 듯 합니다만, 일단 이것부터 설명하지 않으면 이 명령패턴에 대한 공부가 제대로 되지 않는 문제점이 있어서 하는 수 없었습니다.

반응형