본문 바로가기

effectivejava2

Effective Java 2장 - Item2: 생성자에 매개변수가 많다면 빌더를 고려하라 아이템 2: 생성자에 매개변수가 많다면 빌더를 고려하라핵심 개념객체 생성 시 설정할 필드가 많을 때, 생성자나 자바빈(Setter) 방식 대신 전용 Builder 객체를 사용하여 객체를 생성하는 패턴입니다.장점가독성이 매우 좋다: 어떤 값을 설정하는지 builder.field(value) 형태로 명확하게 알 수 있습니다.불변 객체를 만들 수 있다: build() 메서드가 호출되기 전까지 객체 생성이 완료되지 않으며, 생성된 후에는 상태를 바꿀 수 없게 만들 수 있습니다.객체 일관성을 유지하기 쉽다: build() 메서드에서 모든 매개변수에 대한 유효성 검사를 한 번에 수행할 수 있습니다.단점코드가 길어진다: 빌더 클래스를 별도로 만들어야 하므로 코드량이 늘어납니다.객체 생성 전 빌더를 먼저 만들어야 하므.. 2025. 6. 10.
Effective Java 2장 - Item1 : 생성자 대신 정적 팩터리 메서드를 고려하라 아이템 1: 생성자 대신 정적 팩터리 메서드를 고려하라핵심 개념new 키워드를 사용한 public 생성자 대신, 객체를 반환하는 public static 메서드를 제공하는 방식입니다.장점이름을 가질 수 있다: new BigInteger(1, byte[]) 보다 BigInteger.probablePrime() 처럼 메서드 이름만 봐도 용도를 알기 쉽습니다.호출될 때마다 새 객체를 만들 필요가 없다: Boolean.valueOf(true)는 항상 같은 Boolean 객체를 반환하여 성능을 높입니다. (인스턴스 캐싱)반환 타입의 하위 타입 객체를 반환할 수 있다: Collections.emptyList()는 실제로는 내부의 비공개 클래스 인스턴스를 반환합니다. API를 유연하게 만들 수 있습니다.매개변수에 따.. 2025. 6. 10.