2016년 7월 25일 월요일

Java Programiing [48강] Singleton : 클래스에 대한 객체가 단 하나만 존재하도록 막는다

오늘은 싱글톤 패턴에대해 알아봅니다. 싱글톤 패턴은 객체를 딱 한개만 만들어서 사용할 때 적용합니다. (여러개의 객체가 생성되는 것을 막는다.)
그런데 클래스를 만들고 그 객체가 딱 하나만 생성되어 사용되도록 한 이유가 무엇일까요?
예를 들어, 시간에 대한 여러가지 정보를 갖고 있는 클래스가 있을 때 여러사람이 이 클래스의 정보를 객체 여러개를 사용해서 사용하면 어떤일이 벌어질까요? 그 정보를 호출해 데이터를 출력하는 경우라면 똑같은 데이터를 여러 객체로 볼 필요가 없을 것입니다. 또 만일 여러개의 객체로 선언해 여러사람이 사용한다면 각자 사용하는 객체로 정보를 변경시키는 경우 각각 다른 정보를 갖게 되어 혼선이 오게 됩니다. 따라서 시간 정보를 담는 클래스는 딱 하나의 객체만 생성하고 그 이후에 여러개의 객체가 새로 생성되는 것을 막는 것이 좋습니다.
객체가 단 한번만 생성되고 여러개가 생성되는 것을 막기 위해서는 클래스 안의 생성자를 private으로 바꾸고 클래스 안에서 생성한 객체도 private으로 외부에서 접근하지 못하게 숨기는 동시에 null로 초기화하여 깡통으로 만듭니다. 대신 class 내부에서 생성자를 호출하는 메서드를 public으로 선언합니다. 이렇게 하면 생성자대신 이 메서드로 객체를 생성하고 한번 객체가 생성되면 그 다음부터는 새로운 객체가 생성되지 않도록 막을 수 있습니다.
실제 코드로 Singleton 패턴을 실습하겠습니다.



댓글 없음:

댓글 쓰기