HwangHub

[이펙티브자바] @Builder를 클래스 레벨이 아닌 생성자 레벨에 사용 본문

DEV-STUDY/Java

[이펙티브자바] @Builder를 클래스 레벨이 아닌 생성자 레벨에 사용

HwangJerry 2023. 7. 25. 00:21

이펙티브 자바에서 소개된 객체 생성 방법론인 Builder Pattern을 쉽게 적용할 수 있도록 Lombok에서는 @Builder라는 어노테이션을 제공해 줍니다.

 

이를 개인적으로는 클래스 레벨에서 많이 사용해오곤 헀는데, 롬복 공식 문서에 따르면 @Builder 어노테이션은 생성자 레벨에서 사용하는 것을 권장한다고 합니다.


출처: https://projectlombok.org/features/Builder

 

@Builder

 

projectlombok.org

 

클래스 레벨과 생성자 레벨에는 한 가지 차이점이 있는데,

클래스 레벨에서는 가능한 모든 필드에 대하여 빌더 메서드를 생성했다면, 생성자 레벨에서는 생성자의 파라미터 필드에 대해서만 빌더 메서드를 생성한다는 점입니다.

 

출처: https://sudo-minz.tistory.com/137

 

[JAVA] @Builder 동작 원리, @Builder.Default, @Singular

1. @Builder 란 @Builder 란 Lombok에서 제공하는 어노테이션으로, 생성자 인자를 메서드 체인을 통해 명시적으로 대입하여 생성자를 호출할 수 있게 빌더 클래스를 생성 해준다. 빌더 클래스와 IDE의 자

sudo-minz.tistory.com

 

 

Comments