반응형
제육's 휘발성 코딩
반응형
article thumbnail
[이펙티브 자바] 아이템 3 : private 생성자나 열거 타입으로 싱글톤임을 보장하라
Book/Effective Java 2022. 7. 8. 13:32

private 생성자나 열거 타입으로 싱글톤임을 보장하라 싱글톤은 인스턴스를 오직 하나만 생성할 수 있도록 보장해주는 디자인 패턴을 의미한다. 대표적인 예로는 stateless한 객체나 함수 상에 유일하게 설계하는 경우이다. 즉, 반대로 싱글톤 객체는 stateful하게 설계하면 안된다. 싱글톤 관련 포스팅 : https://sasca37.tistory.com/20 클래스를 싱글톤으로 설계하면 이를 사용하는 클라이언트를 테스트하기가 어려워 질 수 있다. 타입을 인터페이스로 정의한 다음 그 인터페이스를 구현해서 만든 싱글톤이 아니라면, 싱글톤 인스턴스를 mock 객체로 대체할 수 없기 때문이다. 싱글톤 방식은 public static final 방식과 정적 팩터리 방식, Enum 방식이 존재한다. 앞의 두..

article thumbnail
[이펙티브 자바] 아이템 2 : 생성자에 매개변수가 많다면 빌더를 고려하라
Book/Effective Java 2022. 7. 5. 14:25

생성자에 매개변수가 많다면 빌더를 고려하라. 정적 팩터리 메서드와 생성자에는 매개변수가 많을수록 대응이 어렵다는 공통점이 있다. 예를 들어, 개발자가 실수로 매개변수의 값의 순서를 다르게 대입했으나, 하필 타입이 같으면 컴파일 오류가 발생하지 않는 경우가 있다. 이 문제를 해결하기 위한 대안으로는 자바 빈즈 패턴과 빌더 패턴이 존재한다. 생성자나 정적 팩터리가 처리해야 할 매개변수가 많다면 빌더 패턴을 선택하는 것이 바람직하다. 점층적 생성자 패턴 점층적 생성자 패턴은 필수 매개변수만 받는 생성자를 시작으로 선택 매개변수를 늘려가는 방식으로 매개변수가 많아질수록 클라이언트 코드를 작성하기 어렵다. public class Book { private final String title; private int ..

article thumbnail
[이펙티브 자바] 아이템 1 : 생성자 대신 정적 팩터리 메서드를 고려하라
Book/Effective Java 2022. 7. 4. 19:32

생성자 대신 정적 팩터리 메서드를 고려하라 정적 팩토리 메서드(Static Factory Method)란 객체 생성의 역할을 하는 클래스 메서드라는 의미를 갖고 있다. 즉, 생성자를 통해 객체를 생성하는 것이 아닌 메서드를 통해 객체를 생성하는 것을 의미한다. class Book { private String title; private long isbn; public static Book createByIsbn(long isbn) {...}; public static Book createByTitle(String title){...}; } 클래스는 생성자와 별도로 정적 팩터리 메서드를 제공할 수 있다. 장점 이름을 가질 수 있다. BigInter(int, int, Random) 보다 BigInteger...

반응형
반응형