본문 바로가기

두두의 IT/Spring

Builder와 Getter/Setter

728x90

1. 점층적 생성자 패턴 : 생성자로 필드를 세팅, ex) new UserInfo(userId, password);

2. 자바빈 패턴 : Setter 메서드로 필드를 세팅, ex) userInfo.set(userId);

3. 빌더 패턴 : @Builder

  • Builder Class
  • 객체 생성에서 주입하는 것에 대한 방식
  • 코드에서 파라미터에 대한 정확성과 오류를 찾기 쉽게하는 어노테이션

 

@Builder를 사용하는 이유

  • 코드의 가독성이 높아진다.
  • 더욱 유연한 코드 작성에 용이하다.
    • getter/setter를 무작정 생성하는 경우, 해당 클래스의 인스턴스 값들이 언제 어디서 변경되는지 코드상으로 명확하게 구분할 수 없어 차후 기능 변경 시 불편하다.
  • 유동적으로 필요한 데이터만 필드에 설정할 수 있음
  • 객체를 생성한 후, 변경불가능 상태로 만들 수 있음
    • 인자로 잘못된 값을 전달하는 생성자의 문제점 해결
  • 단, 객체를 생성한 후 수정해야하는 경우에 빌더 패턴을 적용해버리면 결국 setter도 함께 사용하게 되는 단점이 있음
  • Builder 클래스가 만들어지기 때문에 영향이 크진 않지만 성능적으로도 불리할 수 있음
  •  
      생성자 빌더 클래스
    역할 생성 시점에 값을 실음 생성자와 동일
    특징 코드 실행 전까지 값을 실을 필드를
    명확히 지정하는 것이 불가
    코드 실행 전에 값을 실을 필드를
    명확히 인지 가능

 

 

 

 

 

'두두의 IT > Spring' 카테고리의 다른 글

Spring Batch 개요 ?  (0) 2024.07.12
static / final / 상수  (0) 2023.04.18
int, Integer 차이  (0) 2023.04.17
DAO, DTO, VO 차이  (0) 2023.04.17
JUnit5  (0) 2022.11.10