객체 생성 패턴 종류
- 생성자, 수정자 패턴
- 정적 메소드 패턴
- 빌더 패턴(lombok 이용)
builder pattern
- 기존 )
- 필요한 매개변수 종류별로 생성자 만들어야 했음
- 생성자 사용 시 파라미터 순서 지켜야 함
- setter로 인해 객체 불변성이 깨진다 -> 변경 가능성 존재
- 빌더패턴 이용 시)
- 불필요한 생성자 제거할 수 있음
- 데이터의 입력 순서 지킬 필요 없음
- 롬복(lombok)을 이용하면 생성자클래스를 따로 정의하지 않아도 됨
- 가독성이 높아짐
- 예시
public class User{
private Long id;
private String name;
private String address;
getter/setter/생성자 정의
}
public class UserBuilder{
private Long id;
private String name;
private String address;
UserBuilder setId(Long id){
this.id=id;
return this;
}
UserBuilder setId(String name){
this.name=name;
return this;
}
UserBuilder setAddress(Address address){
this.address=address;
return this;
}
User build(){
return new User(id,name,address);
}
}
public static void main(String[] args){
UserBuilder userBuilder = new UserBuilder();
User userInfo = userBuilder.build()
.setId(1)
.setName("name1")
.setAddress("address1")
}
import lombok.Builder;
import lombok.Data;
@Data
@Builder
public class User{
private Long id;
private String name;
private String address;
}
public static void main(String[] args){
User user = User.builder()
.id(1)
.name("name1")
.address("address1")
}