빌더 패턴(Builder Pattern)이란?
반응형

빌더 패턴(Builder Pattern)을 사용하는 이유

인스턴스를 생성할 때 생성자만을 통해서 생성하게 되면, 생성자를 일일이 정의를 해줘야 한다던가 생성자에 들어갈 변수의 순서를 맞춰야하는 등의 불편함이 있다. 빌더 패턴은 이 문제를 해결하기 위해 고안된 생성 패턴 중 하나이다.

 

빌더 패턴을 사용했을 때의 장점

  • 필요한 데이터만 설정할 수 있다.
    -> 만약 User 객체를 생성하는데 age라는 파라미터가 필요 없는 상황이라면 이러한 경우를 생성자를 이용하여 생성한다면 age에 더미 값을 넣어주거나 age가 없는 생성자를 만들어주어야한다.
    -> 하지만 빌더 패턴을 사용하면 필요한 데이터만 설정할 수 있다.

  • 유연성을 확보할 수 있다.
    -> User 클래스에 몸무게 컬럼을 추가한다고 생각해보자, 새롭게 변수를 추가해야되니 기존의 코드를 수정해야하는 상황에 직면하게 된다. 
    -> 하지만 빌더패턴은 데이터를 유연하게 값을 설정할 수 있도록 해준다. 데이터를 넣는 곳에서 필요하다면 넣으면 그만..

  • 가독성을 높일 수 있다.
    -> 아래 사용예시만 봐도 가독성이 높은 것을 알 수 있다.

  • 불변성을 확보할 수 있다.
    -> 많은 개발자들이 Setter를 흔히 사용하지만 Setter를 구현하다면 불필요한 확장 가능성을 열어두는 것이다. 이런 것들은 불필요한 코드 리딩을 유발한다.

따라서 객체 생성을 깔끔하고 유연하게 하기 위해 빌더패턴을 사용하고는 한다.

 

사용예시

User user = User.builder()
             .name("diddl")
             .age(23)
             .build();

이런식으로 사용하는데 원하는 데이터만 설정할 수 있고 가독성이 확실히 그냥 생성자로 생성하는 것보다 높다. 또한 class의 요소가 많을때는 생성자의 인자가 너무 많아져 알아보기가 힘들 수도 있는데 이렇게 빌더 패턴을 이용하면 가독성있게, 쉽게 구분 가능하다.

 

 

 

반응형