빌더 패턴(Builder pattern)

진기·2024년 1월 22일

Springboot

목록 보기
7/9

📌빌더 패턴(Builder pattern)이란?

  • 객체를 정의하고 그 객체를 생성할 때 보통 생성자를 통해 생성하는 것을 생각한다. 하지만 그 생성자를 통해 객체를 생성하는데 몇 가지 단점이 있어 객체를 생성하는 별도 builder를 두는 방법이 있는데 이를 빌더 패턴이라고 한다.

<예시 코드>

Bag bag = Bag.builder()
		.name("name")
        	.money(1000)
        	.memo("memo")
        	.build();
  • 객체를 생성할 수 있는 빌더를 builder()함수를 통해 얻고 거기에 세팅하고자 하는 값을 세팅하고 마지막에 build()를 통해 빌더를 작동시켜 객체를 생성한다.

🌏Builder를 써야하는 이유

1) 생성자 파라미터가 많을 경우 가독성이 좋지 않다.

  • 빌더 패턴으로 구현하면 각 값들은 빌더의 각 값들의 이름 함수로 세팅이 되어 각각 무슨 값을 의미하는지 파악하기 쉽다.
  • 같은 타입의 다른 변수의 값을 서로 바꿔 넣는 것을 방지할 수도 있다.
    2) 어떤 값을 먼저 설정하던 상관 없다.
  • 생성자의 경우 정해진 파라미터 순서대로 꼭 값을 넣어줘야 한다. 하지만 빌더 패턴은 빌더의 필드 이름으로 값을 설정하기 때문에 순서에 종속적이지 않다.

😉Builder 사용법

  • 빌더 패턴을 적용할 객체에 @Builder 어노테이션을 달아준다.
  • @Builder는 룸북의 어노테이션이다.
@Builder
public class Bag {
	private String name;
        private int money;
        private STring memo;
}
  • 어노테이션만 달면 빌더가 생기고 빌더를 통해 객체를 생성할 수 있다.
Bag bag = Bag.builder()
		.name("name")
        	.money(1000)
        	.memo("memo")
        	.build();

✓ @Builder는 되도록 생성자 위에 다는 것을 추천한다.

profile
개발 성장 이야기

0개의 댓글