이미 많은 분들이 빌더 패턴 관련해서 포스팅을 잘 정리해주셔서 빌더 패턴에 대해서 설명 해주기 보다는 인텔리제이 플러그인을 활용해서 좀 쉽게 사용할 수 있는 팁을 포스팅을 해보겠습니다.
물론 Lombok을 활용해서 빌더를 손쉽게 사용할 수있지만 Lombok을 사용하지 않고도 쉽게 만들 수 있는 방법을 소개해드리겠습니다.
Builder Generator 플러그인 설치
Preferences -> Plugins -> Browse Repositories -> Builder Generator 검색 및 설치
public MemberBuilder withMobile(String mobile){ this.mobile = mobile; returnthis; }
public MemberBuilder withAddress(String address){ this.address = address; returnthis; }
public MemberBuilder withPassword(String password){ this.password = password; returnthis; }
public MemberBuilder withState(String state){ this.state = state; returnthis; }
public MemberBuilder withAge(int age){ this.age = age; returnthis; }
public Member build(){ Member member = new Member(); member.setName(name); member.setEmail(email); member.setMobile(mobile); member.setAddress(address); member.setPassword(password); member.setState(state); member.setAge(age); return member; } }
필수 맴버 필드인 name, email에 final을 추가합니다.
생성자 파라미터에 name, email 추가합니다.
자동으로 만들어준 name, email의 with 메소드를 제거 합니다.
객체 생성
1 2 3 4 5 6
Member member = MemberBuilder .aMember("Yun", "cheese10yun@gmail.com") .withAddress("address") .withAge(20) .withMobile("010-XXXX-XXXX") .build();
필수 값은 생성자로 넘겨 필수 값을 넘겨 필수 값을 인지 하기 쉽습니다.
옵션 값들은 순서에 상관 없이 .with...() 메소드로 이어나갑니다.
결론
객체를 안전하게 생성하고 쉽게 생성할 수 있다는 장점이 있습니다. 개념도 그렇게 어렵지 않아 가장 만만하게 도입해 볼만한 디자인 패턴인거 같습니다.