230208 - Builder패턴

Cornchip·2023년 2월 8일
0

Today-I-Learned

목록 보기
15/28

목차
1. builder 패턴



1. builder 패턴

1) Builder Pattern 이란?

  • 객체를 정의하고 생성할 때 생성자를 통해 생성하는 것 뿐만 아니라 객체를 생성할 수 있는 별도의 함수를 두고(builder()) 거기에 세팅하고자 하는 값을 세팅하여 객체를 생성하는 디자인패턴이다.

2) Builder Pattern을 써야하는 이유

  1. 생성자 파라미터가 많을 경우 가독성이 좋지 않다.
  • 빌더 패턴으로 구현하게 되면 각 값들은 빌더의 각 값들의 이름함수로 세팅이 되어 각각 무슨 값을 의미하는지 파악하기 쉽다.
  • 따라서 생성자로 설정해야하는 값이 많을 경우 빌더를 쓰는 것이 생성자보다 가독성이 좋다.
// 예시
Bag bag = Bag.builder()
			.name("name")
            .money(1000)
            .memo("memo")
            .letter("This is the letter")
            .box("This is the box")
            .build();
  1. 어떤 값을 먼저 설정하던 상관 없다.
  • 생성자의 경우와 달리 파라미터를 꼭 순서대로 넣어줄 필요가 없다.
  • 빌더 패턴은 필드 이름으로 값을 설정하기 때문에 순서에 종속적이지 않다.
// 예시
Bag bag = Bag.builder()
            .money(1000)
            .name("name")
            .letter("This is the letter")
            .memo("memo")
            .box("This is the box")
            .build();

3) Builder Pattern의 구현

  • Getter, Setter 메서드와 마찬가지로 각 멤버 필드별로 값을 설정하고 빌더를 반환하는 Builder 메서드를 만들면 된다.
  • 이는 더 번거로운 작업이 되므로 @Builder어노테이션을 이용하는 것이 편리하다.(Lombok)
// 예시
@Builder
public class Bag {
		private String name;
    	private int money;
        private String memo;
}
  • @Builder어노테이션을 달면 빌더가 생기고 위와 마찬가지로 빌더를 통해 객체를 생성할 수 있다.

참고출처 : https://pamyferret.tistory.com/67

profile
cornchip

0개의 댓글