디자인 패턴중 하나인 싱글톤 패턴에대해 알아보자!
static 에 대한 개념이 있다면 싱글톤을 이해하는것이 수월하다.
싱글톤은 단 하나의 객체만을 생성하게 강제하는 패턴이다.
즉, 클래스를 통해 생성할 수 있는 객체는 Only One, 즉 한 개만 되도록 만드는 것이 싱글톤이다.
예제
Singleton 클래스에 one이라는 static 변수를 두고 getInstance 메소드에서 one 값이 null인 경우에만 객체를 생성하도록 하여 one 객체가 단 한번만 만들어지도록 했다.
getInstance 메소드의 동작원리를 살펴보자.
최초 getInstance가 호출 되면 one이 null이므로 new에 의해서 객체가 생성이 된다. 이렇게 한번 생성이 되면 one은 static 변수이기 때문에 그 이후로는 null이 아니게 된다.
그런 후에 다시 getInstance 메소드가 호출되면 이제 one은 null이 아니므로 이미 만들어진 싱글톤 객체인 one을 항상 리턴하게 된다.
main 메소드에서 getInstance를 두번 호출하여 각각 얻은 객체가 같은 객체인지 알아본 결과 "true"가 출력되어 같은 객체임을 확인 할 수 있다.