관리 메뉴

caLAB

[개발] 쉽게 배워 바로 써먹는 디자인 패턴 03 - 빌더(builder) 패턴, 프로토타입(Prototype) 패턴 본문

개발 공부/컴퓨터 과학

[개발] 쉽게 배워 바로 써먹는 디자인 패턴 03 - 빌더(builder) 패턴, 프로토타입(Prototype) 패턴

도이(doi) 2022. 4. 15. 16:23
728x90

Builder Pattern

오브젝트의 생성과정이 복잡할 때 이를 간단하게 만듦. 

오브젝트의 생성 과정에 여러 인자가 필요할 때 이를 단순화 시킬 수 있음. 

 

오브젝트의 생성과정이 복잡할 때 빌더 패턴으로 구현하는 것을 생각해볼 것. 

argument를 통한 cat 생성
기본적인 builder 패턴 형식

값을 지정하고 설정하는 것을 함수로 따로 빼주어서 argument를 set해 줌. 

체인 형식으로 객체 생성

함수 끝에 return 값을 붙여서 체인 형태로 함수를 연속적으로 호출

마지막에 build함수로 cat 객체 생성

WhiteCatBuilder에서는 하얀색 고양이만 생성. BlackCatBuilder에서는 검은색 고양이만 생성.

constructor에서 base 클래스의 constructor 호출

Builder 인터페이스 : 고양이 Builder

ConcreteBuilder 인터페이스 : 하얀색 / 검은색 고양이 Builder

Product : 고양이 객체 생성

디렉터 class의 목적은 builder를 세팅해주는 것. 

*디렉터는 꼭 사용할 필요는 없음. 

디렉터를 통해서 고양이 객체 세팅

작은 고양이 / 큰 고양이를 세팅하는 builder

*빌더 패턴이 필요할 때 사용하는 것으로 굳이 필요 없다면 사용하지 말 것. 

Builder(캣 생성 기본형)만 사용하거나, Concrete Builder(하얀색 / 검정색 캣 생성)만 사용해서 개발하는 것도 좋음. 

 

Prototype Pattern

중간 단계 오브젝트를 프로토타입으로 만들고 이를 copy해서 오브젝트로 만드는 패턴

프로토타입을 복사하여 객체 생성
미완성된 프로토타입으로 kitty, nabi오브젝트 생성
prototype UML class diagram

728x90
반응형
Comments