개발로그

Item 2 - 생성자에 매개변수가 많다면 빌더를 고려하라

Item2 - 생성자에 매개변수가 많다면 빌더를 고려하라 정적 팩터리 메서드와 생성자는 선택적 매개변수가 많을 때 적절히 대응하기 어렵다. 🤦‍♀️ 이러한 제약의 대안으로 프로그래머들은 다음과 같은 방법을 사용했다. 점층적 생성자 패턴 자바 빈즈 패턴 빌더 패턴 (1) 점층적 생성자 패턴 (확장의 어려움) public c...

Item 1 - 생성자 대신 정적 팩터리 메서드를 고려하라

정적 팩터리 메서드의 장점 👍 (1) 이름을 가질 수 있다. 생성자에 넘기는 매개변수와 생성자 자체만으론 반환될 객체의 특성을 제대로 설명하지 못한다. 반면, 정적 팩터리 메서드는 이름만 잘 지으면 반환될 객체의 특성을 쉽게 묘사할 수 있다. [생성자] : BigInteger(int, int, Random) [정적 팩터리 메서드]...

Item 90 - 직렬화된 인스턴스 대신 직렬화 프록시 사용을 검토하라

Serializable을 구현하는 순간, 생성자 이외의 방법으로 인스턴스를 생성할 수 있게 된다. 이전 아이템에서도 계속 언급되지만, 버그와 보안 문제가 일어날 가능성이 커진다. 하지만 직렬화 프록시 패턴을 사용하면 이 위험을 크게 줄일 수 있다. 직렬화 프록시 패턴 public final class Period implements Serial...

Item 87 - 커스텀 직렬화 형태를 고려하라

클래스가 Serializable을 구현하고 기본 직렬화 형태를 사용한다면 다음 릴리스 때 버리려 한 현재의 구현에 발이 묶이게 된다. 먼저 고민해보고 괜찮다고 판단될 때만 기본 직렬화 형태를 사용하라. 기본 직렬화 형태는 유연성, 성능, 정확성 측면에서 신중히 고민한 후 합당할 때만 사용해야 한다. 객체의 물리...