반응형

주의! 자바에서의 빌더 패턴은 해당 빌더 패턴과는 조금 다르기 때문에 자바의 빌더 패턴을 원하시는 분은 다른 게시글을 확인하시길 바랍니다.



빌더 패턴은 개체를 생성하는 구조는 같지만, 목적에 따라 개체를 생성하는 과정이 다른 서브 클래스들에 대하여, 개체를 생성하는 과정에 대한 알고리즘을 분리한 패턴이다.


글만으로는 무슨 말인지 이해하기 어려울 수 있다.


예를 가지고 설명하겠다.



지상 최대의 결투 대회가 열린다.


이 결투 대회는 직업에 따라 장비들을 제한 받는 규칙이 있다.


때문에 접수처에 자신의 장비 정보들을 주면, 접수원이 직업에 맞게 정보를 제한하여 참가 접수를 하는 방식이다.


모든 직업이 해당 직업의 기본 장비를 장착해야 하며,

전사는 스킬, 궁수와 마법사는 탈것을 제한 받는다.



접수처에 자신의 장비 정보들을 주는 것이 개체를 생성할 때에 입력하는 정보이다.


직업에 맞게 정보를 제한하는 과정이 빌더 패턴에 해당된다.


참가 접수를 하는 것이 개체의 최종 생성에 해당한다.



개체를 생성하면, 빌더 패턴을 통하여 생성한 개체를 정해진 과정에 따라, 변경된 개체를 반환하는 것이 빌더 패턴이다.




Battle 클래스가 빌더 패턴으로 사용되는 클래스이다.


빌더 패턴으로 사용되는 클래스는 생성 구조와 생성 과정에 대한 함수를 가진다.


SetCharacter 함수는 캐릭터를 생성하는 함수

SetEquip 함수는 생성된 캐릭터를 정해진 과정으로 수행하는 함수

ViewStatus 함수는 변경된 개체를 확인하는 함수이다.


위와 같이 빌터 패턴을 사용하면, 여러 종류의 개체의 생성 방식을 일반화 할 수 있다.



반응형

+ Recent posts