Java

[Java]Builder pattern

MoZZANG 2022. 3. 22. 20:56

Builder pattern은 객체 생성과 관련된 디자인 패턴이다. 보통 인자가 많은 객체를 생성할 때 유리하다.

 

 

 

▲ 내부클래스를 품을 외부클래스를 생성하자

 

 

▲ 내부 정적 클래스를 생성하자. 내부 클래스의 맴버변수는 외부클래스의 맴버변수와 동일해야한다.

 

 

▲내부클래스에는 꼭 초기화를 하고싶은 필수항목만을 받는 인자생성자를 생성하였고, 선택적으로 초기화를 할 맴버변수를 인자로 받는 인자생성자도 만들었다. 이때 인자생성자들의 반환타입은 모두 내부클래스 타입으로 한다.

 

추가로 외부클래스 타입을 반환하는 메소드와 내부 정적 클래스타입을 인자로 받는 생성자도 정의했다.

 

▲ 편한 출력을 위해 toString도 오버라이딩 하자.

 

 

 

출력을 해보자

▲외부클래스를 선언 및 인스턴스화 해주면서 Builder인자생성자를 통해 필수항목들을 초기화해주고 초기화 해준 것을 build()메소드를 이용하여 입력한 값들을 외부클래스의 맴버변수의 메모리를 생성함과 동시에 초기화해준다.

 

선택항목을 추가할 때도 같은 메커니즘으로 setTel()메소드나 setAddr()메소드를 이용해서 선택항목을 초기화시킨다.