프로그래밍/디자인 패턴
Design pattern, Singleton
nocomet
2016. 6. 18. 16:10
Singleton
인스턴스를 단 하나만 생성하여 어디서든 사용하겠다.
자바에서는 전역변수라는 것이 없다. 어느 변수든 클래스 안에서만 존재하게 된다.
그러나 자바에서는 static이라는 키워드로 광역적으로 접근할 수 있는 방법을 제공한다.
'Static'
Static 키워드는 자바 가상 머신이 클래스의 객체를 생성하여 할당하는 것이 아니라, 클래스의 호출 시 클래스의 static으로 선언된 변수나 메소드를 객체 생성 없이 메모리에 먼저 할당시키는 것이다.
Runtime시 메모리에 할당된다고 생각할 수 있다.
이런 static을 이용하여 Sington 패턴을 생성하고 사용할 수 있다.
앞서 말했든 Singleton 패턴은 어떤 특정 클래스의 인스턴스를 단 하나만 생성하여 어느 위치에서든 호출하여 사용할 수 있게 하는 것이다.
보통 server-client 소켓 통신에서 많이 사용되거나, 프로그램의 controller 같은 클래스가 Singleton으로 많이 만들어진다.
Controller.java
단 하나만 생성하기 위하여 클래스의 생성자를 private 선언하였다.
MainTest.java