7.빌더패턴

강재영's avatar
Aug 14, 2024
7.빌더패턴
 
💡
빌더 패턴(Builder Pattern)은 객체 생성 디자인 패턴 중 하나로, 복잡한 객체의 생성 과정을 단계별로 분리하여 그 과정을 캡슐화하고, 최종적으로 객체를 생성하는 방식을 제공하는 패턴입니다. 이 패턴은 특히 생성자가 너무 많거나, 생성자의 매개변수에 따라 객체를 다양하게 설정할 필요가 있을 때 유용합니다.
 
package ex09; public class App { public static void main(String[] args) { Person p1 = Person.builder().id(1).name("홍길동").age(20).email("wodud6967@naver.com"); Person p2 = Person.builder().id(2).name("홍길동"); System.out.println(p2.getAge()); } }
 
package ex09; //빌더패턴 //생성자오버로딩 및 생성자 매개변수의 순서를 기억할 필요가 없다. //기본자료형보다는 매핑클래스를 사용하자 int를 찍으면 널이아니라 0이 찍히므로 null이 나오게 매핑클래스로 만들자 //나중에 LOMBOK을 사용하면 어노테이션 @builder를 사용하면 된다. public class Person { private Integer id; private String name; private Integer age; private String email; private Person(){} public static Person builder(){ return new Person(); } public Person id(Integer id){ this.id = id; return this; } public Person name(String name){ this.name = name; return this; } public Person age(Integer age){ this.age = age; return this; } public Person email(String email){ this.email = email; return this; } public Integer getId() { return id; } public String getName() { return name; } public Integer getAge() { return age; } public String getEmail() { return email; } }
 
빌더패턴을 사용하지 않으면 오버로딩을 통해서 필요한 초기세팅만큼 생성자를 만들어야하는 번거러움을 벗어날 수 있다.
 

빌더 패턴을 사용하는 이유

 
  • 유연성: 객체의 구성 요소를 단계적으로 설정할 수 있으므로, 필요한 요소만 선택적으로 설정할 수 있습니다.
  • 가독성: 복잡한 생성자를 사용하는 대신, 빌더 메서드를 사용하여 코드의 가독성을 높일 수 있습니다.
  • 불변성: 빌더 패턴은 보통 불변 객체를 생성하는 데 사용됩니다. 즉, 한 번 생성된 객체는 변경할 수 없도록 설계할 수 있습니다.
 
Share article

강재영 블로그