목록private 생성자 (2)
초보개발자 긍.응.성

단순히 정적 메서드와 정적 필드를 담은 클래스를 만들어야 할 때가 있다. 그 예시는 다음과 같다. java.lang.Math, java.util.Arrays: 같이 기본 타입 값이나 배열 관련 메서드를 모아놓은 클래스 java.util.Collections: 특정 인터페이스를 구현하는 객체를 생성해 주는 정적 메서드를 담은 클래스 final 클래스와 관련한 메서드 (final 클래스를 상속해서 하위 클래스에 메서드를 넣을 수 없기 때문). 정적 멤버만 담은 유틸리티 클래스는 인스턴스로 만들어 쓰려고 설계한 것이 아니다. 하지만 생성자를 명시하지 않으면 자바 컴파일러가 자동으로 기본 생성자를 만들어준다. 이로 인해 매개변수를 받지 않는 public 생성자가 자동으로 만들어지며, 사용자는 이 생성자에 대해 ..

싱글턴 (Singleton) 싱글턴이란 인스턴스를 오직 하나만 생성할 수 있는 클래스를 말한다. 싱글턴의 전형적인 예로는 함수와 같은 무상태(stateless) 객체나 설계상 유일해야 하는 시스템 컴포넌트를 들 수 있다. 그런데 클래스를 싱글턴으로 만들면 이를 사용하는 클라이언트를 테스트하기 어려워질 수 있다. 타입을 인터페이스로 정의한 다음 그 인터페이스를 구현해서 만든 싱글턴이 아니라면 싱글턴 인스턴스를 mock 구현으로 대체할 수 없기 때문이다. 싱글턴을 만드는 방법 싱글턴을 만드는 방식은 보통 아래를 따른다. 생성자는 private 으로 감춘다 유일한 인스턴스에 접근할 수 있는 수단으로 public static 멤버를 마련한다. public static 멤버는 두 가지 방법으로 구현 가능하다. 하..