이펙티브자바

백엔드/Java

[Java] 생성자에 매개변수가 많다면 빌더를 고려하라

점층적 생성자 패턴 정적 팩터리와 생성자에는 똑같은 제약이 하나 있다. 선택적 매개변수가 많을 때 적절히 대응하기 어렵다는 점이다. 프로그래머들은 이럴 때 점층적 생성자 패턴을 즐겨 사용했다. 필수 매개변수만 받는 생성자, 필수 매개변수와 선택 매개변수 1개를 받는 생성자, 선택 매개변수를 2개까지 받는 생성자,.. 선택 매개변수를 전부 다 받는 생성자까지 늘려가는 방식이다. public class NutritionFacts { private final int servingSize; private final int servings; private final int calories; private final int fat; private final int sodium; private final int ca..

백엔드/Java

[Java] 생성자 대신 정적 팩터리 메서드를 고려하라

장점 이름을 가질 수 있다. 생성자에 넘기는 매개변수와 생성자 자체만으로는 반환될 객체의 특성을 제대로 설명하지 못한다. 반면 정적 팩터리는 이름만 잘 지으면 반환될 객체의 특성을 쉽게 묘사할 수 있다. 예를 들어 생성자인 BigInteger(int, int, Random) 보다 정적 팩터리 메서드인 BigInteger.probablePrime이 `값이 소수인 BigInteger를 반환한다.` 는 의미가 더 와닿을 것이다. 하나의 시그니처로는 생성자를 하나만 만들 수 있다. public class Order { private boolean prime; private boolean urgent; private Product product; public Order(boolean prime, Product p..

밝은별 개발자
'이펙티브자바' 태그의 글 목록