반응형 이펙티브 자바2 [아이템4] 인스턴스화를 막으려거든 private 생성자를 사용하라 이 내용은 이펙티브 자바 Effective Java 3/E 를 읽으면서 정리한 내용을 포함하고 있습니다. 정적 메소드와 정적 필드 정적 메소드와 정적 필드만을 담은 클래스를 사용할때가 있습니다. java.lang.Math , java.util.Arrays 처럼 기본 타입 값이나 배열 관련 메서드들을 모아놓았습니다. java.util.Collections 특정 인터페이스를 구현하는 객체를 생성해주는 정적 메소드를 모아놓았습니다. 자바 8부터는 정적 메소드를 인터페이스로 생성 가능합니다. final 클래스와 관련한 메소드들을 모아놓았습니다. 정적 멤버만 담은 유틸리티 클래스는 인스턴스로 만들어 쓰려고 설계한 게 아닙니다. 하지만 생성자를 명시하지 않으면 컴파일러가 자동으로 기본 생성자를 만들어줍니다. 즉, .. 2022. 8. 7. [아이템3] private 생성자나 열거 타입으로 싱글턴임을 보증하라 이 내용은 이펙티브 자바 Effective Java 3/E 를 읽으면서 정리한 내용을 포함하고 있습니다. 내용을 알아보기 전, 싱글턴에 대해서 알고 넘어가도록 하겠습니다. 싱글턴 인스턴스를 오직 하나만 생성할 수 있는 클래스를 말합니다. 싱글턴을 활용한 예로는 무상태 객체(stateless) 또는 설계상 유일해야 하는 시스템 컴포넌트 등 싱글톤의 단점 클래스를 싱글턴으로 만들면 이를 사용하는 클라이언트는 테스트하기가 어려워질 수 있다고 합니다. 좋은 객체 지향을 설계하기 위한 원칙 중에서 의존성을 인터페이스로 설계하면 실제 구현 클래스의 내용이 변경되어도 이를 사용한 코드는 영향을 받지 않게 됩니다. 하지만 싱글톤을 사용하는 경우 대부분 인터페이스가 아닌 구현 클래스의 객체를 미리 생성해놓고 정적 팩토리.. 2022. 8. 7. 이전 1 다음 반응형