디자인패턴 Builder(빌더) 패턴

황제낙엽 2007.11.25 11:34 조회 수 : 493 추천:91

http://blog.naver.com/gamediz/20040618927Builder(빌더) 패턴

1)     정의

복합 객체의 생성 과정과 표현 방법을 분리함으로써 동일한 생성 공정이 서로 다른 표현을 만들 수 있게 한다.

 

빌더 패턴을 정의하기 전에 추상 팩토리와 팩토리 메소드의 정의를 다시 한번 살펴보겠다. 표4를 예로 들자면, 추상 팩토리는 재료를 추상화 하는 것이고(데이터를 추상화 하는 것), 팩토리 메소드는 공장을 추상화 하는 것이다(데이터를 가공만 하는 것). 빌더는 추상 팩토리와 팩토리 메소드를 모두를 사용하여 만든 두 가지의 특징을 모두 가지고 있다.

즉 빌더(데이터와 행동을 모두 가지고 있는 것) = 재료(데이터) + 기능(가공) 이 된다.

(재료를 가공하여 만든 로봇(재료+기능) = 빌더)

 

2)     예제

앞에서 표4의 태권V 같은 완제품 로봇이 빌더 패턴이라고 했는데, 조금 더 쉽게 이해하기 위해 간단한 예를 들어보겠다.


빌더 패턴에 의해 생성된 빗금안에 있는 로봇들
(태권V, 깡통로봇, 청소로봇)을 로봇은 로봇으로 추상화가 가능하다. 만약 태권V가 명령을 받기 위해서는 로봇 개체에서 명령을 받기 위한 커맨드(인터페이스)를 상속 받아야 한다.

 

게임으로 예를 들자면, 스타크래프트에서 마린에게 공격을 시키고 싶을 때

‘ATTACK(키)’+’지점클릭’ (명령을 키보드와 마우스로 받아들임)을 하면 이렇게 행동한다.

①     마린은 해당지역 까지 이동을 한다.

②     이동중에 적을 만나면 공격한다.

③     적을 해치웠는데 클릭한 지점까지 오지 못했으면 다시 이동한다.

④     이동중에 적을 만나면 공격한다.

 

‘ATTACK(키)’+’지점클릭’ 이라는 명령을 인터페이스로 받아 들였을 때 마린은 꽤나 복잡한 행동을 했다.

왜 그럴까? 빌더 패턴에 의해 데이터와 행동을 미리 입력시켜 주었기 때문에 마린이 스스로 행동이 가능했던 것이다.

 

빌더 패턴은 게임 기획에서 다음과 같이 이용할 수 있다.

스킬(행동)도 다르고, 능력치(데이터)도 다른 다양한 행동을 하는 로봇을 생산해야 할 때 빌더 패턴을 사용하여 다양한 로봇을 생산할 수 있다.


번호 제목 글쓴이 날짜 조회 수
64 [ChatGPT] 소프트웨어 품질 관리에서 필요로 하는 소양 황제낙엽 2025.05.02 242
63 [Selenium] 크롬 브라우저 실행 화면을 출력하거나 감추는 방법 황제낙엽 2024.05.05 377
62 [Selenium] 페이지 이동 함수 황제낙엽 2024.05.05 346
61 [Selenium] Chrome 실행 자동화 file 황제낙엽 2024.05.03 1498
60 [Selenium] MS Edge 실행 자동화(RPA, Robotic Process Automation) file 황제낙엽 2024.05.02 701
59 [Selenium] Warning : Unable to find CDP implementation matching 124 황제낙엽 2024.05.02 1062
58 프로젝트 WBS 예제 (Microsoft Project 2013) secret 황제낙엽 2021.05.12 0
57 WBS (Work Breakdown Structure) 황제낙엽 2020.06.18 286
56 프로젝트 진행 절차 file 황제낙엽 2020.05.21 405
55 BDD (Behaviour-Driven Development) 황제낙엽 2020.04.02 358
54 요구사항 개발과 요구사항 관리 요약(요구사항기술서 샘플) file 황제낙엽 2019.07.07 425
53 뒤늦게 정리하는 UML (Unified Modeling Language) 요약 file 황제낙엽 2017.03.29 767
52 StarUML™의 숨은 재미있는 기능 황제낙엽 2017.03.29 2481
51 The Facade Pattern file 황제낙엽 2017.01.04 655
50 와블스 프로세스(Warbles Process) 황제낙엽 2016.07.17 550
49 비 개발자 출신이 스크럼 마스터가 될 수 있는가? 황제낙엽 2015.06.25 621
48 디자인패턴[Observer 패턴] 황제낙엽 2013.10.18 500
47 PMBOK 5판 이해관계자 관리의 이해 [1] file 황제낙엽 2013.08.23 1650
46 Validation and Verification file 황제낙엽 2013.08.23 432
45 이해관계자의 관리/이해관계자 분석 황제낙엽 2013.08.23 670