반응형
빌더 패턴(Builder Pattern)을 사용하는 이유
인스턴스를 생성할 때 생성자만을 통해서 생성하게 되면, 생성자를 일일이 정의를 해줘야 한다던가 생성자에 들어갈 변수의 순서를 맞춰야하는 등의 불편함이 있다. 빌더 패턴은 이 문제를 해결하기 위해 고안된 생성 패턴 중 하나이다.
빌더 패턴을 사용했을 때의 장점
- 필요한 데이터만 설정할 수 있다.
-> 만약 User 객체를 생성하는데 age라는 파라미터가 필요 없는 상황이라면 이러한 경우를 생성자를 이용하여 생성한다면 age에 더미 값을 넣어주거나 age가 없는 생성자를 만들어주어야한다.
-> 하지만 빌더 패턴을 사용하면 필요한 데이터만 설정할 수 있다. - 유연성을 확보할 수 있다.
-> User 클래스에 몸무게 컬럼을 추가한다고 생각해보자, 새롭게 변수를 추가해야되니 기존의 코드를 수정해야하는 상황에 직면하게 된다.
-> 하지만 빌더패턴은 데이터를 유연하게 값을 설정할 수 있도록 해준다. 데이터를 넣는 곳에서 필요하다면 넣으면 그만.. - 가독성을 높일 수 있다.
-> 아래 사용예시만 봐도 가독성이 높은 것을 알 수 있다. - 불변성을 확보할 수 있다.
-> 많은 개발자들이 Setter를 흔히 사용하지만 Setter를 구현하다면 불필요한 확장 가능성을 열어두는 것이다. 이런 것들은 불필요한 코드 리딩을 유발한다.
따라서 객체 생성을 깔끔하고 유연하게 하기 위해 빌더패턴을 사용하고는 한다.
사용예시
User user = User.builder()
.name("diddl")
.age(23)
.build();
이런식으로 사용하는데 원하는 데이터만 설정할 수 있고 가독성이 확실히 그냥 생성자로 생성하는 것보다 높다. 또한 class의 요소가 많을때는 생성자의 인자가 너무 많아져 알아보기가 힘들 수도 있는데 이렇게 빌더 패턴을 이용하면 가독성있게, 쉽게 구분 가능하다.
반응형
'Back-end' 카테고리의 다른 글
[Spring boot] 문자 SMS 인증 구현하기(2) (0) | 2021.12.22 |
---|---|
[Spring boot] 문자 SMS 인증 구현하기(1) (0) | 2021.12.22 |
[ Spring boot ] CORS란? 스프링부트에서의 CORS 설정 (0) | 2021.12.12 |
[Spring] Spring Security에 대해 (2) (0) | 2021.12.07 |
[Spring boot] JPA 연관 관계 정리(단/양방향, 연관 관계 주인, 연관 관계의 종류) (0) | 2021.12.03 |