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

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

sitelink1  
sitelink2  
sitelink3  
extra_vars4  
extra_vars5  
extra_vars6  
http://blog.naver.com/gamediz/20040618927Builder(빌더) 패턴

1)     정의

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

 

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

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

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

 

2)     예제

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


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

 

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

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

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

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

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

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

 

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

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

 

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

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


번호 제목 글쓴이 날짜 조회 수
63 이해관계자 맵(Stakeholder Map) file 황제낙엽 2013.08.23 1513
62 PMBOK 5판 이해관계자 관리의 이해 [1] file 황제낙엽 2013.08.23 1291
61 쓴 자바"의 맛 (반 패턴으로 프로그래밍을 향상시키는 방법) 황제낙엽 2007.10.03 728
60 해석자 (Interpreter) file 황제낙엽 2008.06.25 551
59 뒤늦게 정리하는 UML (Unified Modeling Language) 요약 file 황제낙엽 2017.03.29 458
58 Capability Maturity Model Integration 황제낙엽 2013.08.21 419
57 이해관계자의 관리/이해관계자 분석 황제낙엽 2013.08.23 392
56 StarUML + Manual file 황제낙엽 2013.02.07 362
55 비 개발자 출신이 스크럼 마스터가 될 수 있는가? 황제낙엽 2015.06.25 356
54 StarUML™의 숨은 재미있는 기능 황제낙엽 2017.03.29 356
53 The Facade Pattern file 황제낙엽 2017.01.04 312
52 성공적인 HR 프로젝트의 비결: 이해관계자 분석 file 황제낙엽 2013.08.23 302
51 와블스 프로세스(Warbles Process) 황제낙엽 2016.07.17 237
» Builder(빌더) 패턴 황제낙엽 2007.11.25 195
49 AOP가 필요한 이유 황제낙엽 2008.10.08 187
48 이해관계자 분석(Conduct Stakeholder Analysis) 황제낙엽 2013.08.23 178
47 Factory Method(팩토리 메소드) 패턴 file 황제낙엽 2007.11.25 178
46 StarUML 에서 사용하는 용어 정리 황제낙엽 2010.07.30 162
45 디자인패턴[Observer 패턴] 황제낙엽 2013.10.18 156
44 패턴 입문가에게 권하는 책 - Head First Design Patterns (스토리가 있는 패턴 학습법) 황제낙엽 2007.11.25 118