개발/Java

[Java/디자인 패턴] 간단한 빌더 패턴(Builder Pattern) 예제

Monsh 2020. 4. 5. 20:33
반응형

빌더 패턴 사용예

사용 시점

다수의 필드를 포함한 인스턴스를 생성할 때 적용을 고려해보자.

생성자(Constructor)와의 차이

인스턴스를 간편하게 생성하기 위해서는 생성자를 사용할 수도 있겠지만,
생성자는, 특정 필드의 초기화를 강제하는 것에 목적이 있다고 생각한다.
그에 비해서, 빌더 패턴은, 편리함에 초점이 맞춰져 있다.
높은 안정성이 필요한 경우에는 생각을 좀 해봐야 할 것 같다.

구현 방법

별도의 클래스가 하나 필요하다.
우선, 아래와 같은 Person이라는 클래스가 있다고 하자.

Class Person

(좌측 줄번호 아래에 빨간 밑줄은, 변경사항을 저장하지 않았다고 이클립스가 알려주는 것이니 너무 신경쓰지 않도록 하자)
builder 메소드(노란 네모)에 주목하자.

그리고, 빌더 패턴을 구현하기 위해 PersonBuilder(이름은 중요하지 않다)라는 클래스를 만들자.

Class PersonBuilder

PersonBuilder에는 firstName, lastName, birthDate라는 3가지 메소드가 있는데,
이름은 편의를 위해 Person 클래스의 필드와 맞추었고, 모두 this를 리턴한다는 것에 주목해야 한다.

main이 있는 클래스

동작 방식

1. Person 클래스의 builder 메소드로 PersonBuilder를 하나 리턴 받는다.
2. 리턴 받은 PersonBuilder의 firstName, lastName, birthDate 메소드를 연속적으로 호출한다.
(각 메소드가 this를 리턴하고 있기 때문에 dot-chain 형식으로 사용이 가능하다. 호출 순서는 중요하지 않다.)
3. 마지막으로 build 메소드로 인스턴스를 생성한다.

끝.

반응형

'개발 > Java' 카테고리의 다른 글

[Java] throw, throws 차이 및 사용법  (0) 2021.02.11
[Java / 자바] JDK vs JRE / JDK 버전 차이  (0) 2018.05.28