You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
publicclassLombokBuilderTest {
publicstaticvoidmain(String[] args) {
// AS-IS 필수 필드에 대한 제약 ONutritionFactscocaCola = NutritionFacts.builder(240, 8)
// optional한 필드들 지정
.calories(100)
.build();
// TO-BE 필수 필드에 대한 제약 XNutritionFactssprite = newNutritionFactsBuilder()
// optional한 필드들 지정
.calories(100)
.build();
}
}
위 코드처럼 NutritionFacts 클래스에 정적 메서드 builder를 통해
빌더 객체를 생성하기 전에 필수 필드를 넣어야 하는 제약을 추가해주는 방식으로 해결할 수 있었습니다.
(builder 메서드는 NutritionFactsBuilder을 리턴하여 메서드 체이닝하는 방식으로..!)
The text was updated successfully, but these errors were encountered:
질문있어요 🙋♀️🙋♂️
질문은 아니고 피드백 주시면 감사하겠습니다~~!
📚 책
Lombok 관련, 책에는 나와있지 않고 강의에서만 언급된 내용입니다.
질문
Effective Java 책에서는 생성자의 매개변수가 많은 경우 Builder 패턴을 이용하여 해결하는데,
백기선 님 강의에서는 더 나아가 Lombok의
@Builder
를 사용함으로써 개발자가 작성해야하는 코드가 줄어드는 이점을 가지게 되는 것에 대해 언급합니다.하지만 Lombok의
@Builder
를 사용하는 경우,Builder 패턴을 사용할 때와 다르게 필수로 지정해주어야 하는 필드에 대한 제약이 없다는 문제가 발생하고,
이를 해결하기 어렵다고 합니다. (아이템 2. 핵심 정리 2 - 빌더 - 09:37)
NutritionFacts
LombokBuilderTest
위 코드처럼
NutritionFacts
클래스에 정적 메서드builder
를 통해빌더 객체를 생성하기 전에 필수 필드를 넣어야 하는 제약을 추가해주는 방식으로 해결할 수 있었습니다.
(builder 메서드는 NutritionFactsBuilder을 리턴하여 메서드 체이닝하는 방식으로..!)
The text was updated successfully, but these errors were encountered: