본문 바로가기

Design Patterns

Facade Pattern ② Coding

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
후.. 퍼사드를 상상하는데 좀 오래걸렸습니다.. 그렇다고 하루라는 시간이 걸린건 아니구요.. 'ㅡ';; 어제는 일이 생겨버리는 바람에... 개요 해놓고 후다닥 나가버렸습니다 ㅠㅠ 일헌.... 여튼.. 시작한지 얼마 되지도 않았는데 너무 게으름을 피우는거 같습니다.. 음.. 여튼.. 사설이 너무 길었고... 이런식으로 한번 생각을 해봤습니다. 일단..

이번에도 스타크래프트 -_-)乃 를 또.. ㅋㅋㅋㅋ 여튼.. 봅시다.. 빌드 오더.. 대충 아시죠??? 들.. -_- (아세요 좀..)
게임을 한다고 가정하면.. 초반 빠른 닥템 러쉬를 위해서는 일꾼도 만들고.. 첨에 입구 막을 질럿 두마리도 뽑아주고.. 테크트리 타고.. 템플러 아카이브 짓고 닥템 두마리 뽑아서 샤샤샥.. 하면 되잖아요?

아래는 그걸 좀 그림으로 그려봤습니다.. UML로요.. -_-;; ㅋㅋ

사용자 삽입 이미지


그럼.. 이 건물들을 이용하는 게이머가 있다고 가정을 하면.. 이 게이머는 닥템 생산을 위해서는..? 어떻게 해야할까요? 'ㅡ';; 아래와 같은 소스코드가 나옵니다.. -_-

사용자 삽입 이미지

완전 초 빡쎈 소스코드 남발을 해야합니다.. 뭐 일종에 하드코딩인데.. 솔직히 저렇게 안쓰면 할수가 없습니다. 순서대로 건물 지어야 되구.. 그런건 당연한거니까.. 좀 소스가 길더라도 맞는 소리입니다..

그런데 갑자기.. 후로게이라면.. 생각이 듭니다. 일반 게임을 즐기는 사람이면. 저런 빌드 오더대로 착착 해야되는데.. 후로게이라면 한방에 되겠죠?? -_-;; 좀 여기서 억지성이 있긴 하지만.. 한번 봅시다..

사용자 삽입 이미지

우선 빌드 오더 퍼사드라는 클래스를 만들었습니다.. 이녀석이 퍼사드 클래스 인데요.. 이 퍼사드 클래스에서 하는 일은.. 각각 건물 클래스에 대한 객체 정보를 다 가지고 있습니다. 생성자는 이것들을 초기화 시키는 역할을 하고.. 퍼사드 클래스에서는 빌드오더들을 제공합니다. 해당 빌드오더의 내용이 궁금하다기 보다는.. 빌드오더의 결과가 중요한거죠.. 후로게이나 게이머나 둘다 빌드오더로 만들어 지는게 뭔가 궁금할껍니다.. -_-

이런식으로 소스를 사용하면..?

사용자 삽입 이미지
좀 더 간단해 졌으려나요? 일단 BuildOrderFacade 객체를 만들기 위해서.. 건물 객체들을 전부 만들어 줘야 하구요.. 할일은? 그냥 거기 있는 빌드오더만 갔다 쓰면 됩니다. -_- 또 다른 빌드오더가 추가되면.. 저쪽에 추가만 시켜주면 되구요.. 게이머에 입장에서는... 빌드오더 메소드만 호출 하면.. 이 퍼사드 클래스에서 알아서 다른 건물 클래스들을 연결시켜서 원하는 유닛을 생산하도록 도와줍니다.