인스턴스를 막으려거든 Private 생성자를 사용하라 Java에는 Arrays, Collections와 같은 유틸 클래스들이 있다. 이러한 유틸 클래스들은 대부분 정적 메서드 ( 혹은 정적 팩터리 메서드 ) 만 제공하는데, 이러한 클래스들은 인스턴스화 할 필요도 없고 인스터스 해서도 안된다. 그렇다면 이러한 클래스들은 유틸 클래스로 만들지 못하는게 가장 안전한데, 자바에서는 이를 쉽게 구현할 수 있다. 자바 특성상 클래스를 설계할때 생성자가 하나도 없다면 기본 public 생성자를 만들어 클래스를 인스턴스화 한다. 이 말은 설계시 생성자를 하나만이라도 생성하면 기본 public 생성자를 만들지 않는데, effective java에서는 private 생성자를 만들어 클래스를 인스턴스화는걸 막으라고 설명하고..
싱글턴 ( Singleton ) 싱글턴이란 인스턴스를 오직 하나만 생성할 수 있는 클래스를 말하며 만들어진 값은 오직 시스템상에서 하나만 존재해야한다. 싱글턴으로 만들고 사용하기 싱글턴으로 만드는 방식은 크게 세가지 방식이 있다. 1. public static 맴버 변수 사용 public class Single { public static final Object INSTANCE = new Object(); private Single() { } } public class Main { public static void main(String[] args) { Object obj1 = Single.INSTANCE; Object obj2 = Single.INSTANCE; Object obj = new Object..