반응형
싱글톤이란 어떠한 클래스가 최초 한번만 메모리를 할당하고(Static) 그 메모리에 객체를 만들어 사용하는 디자인 패턴을 의미한다. 즉, 객체 생성자의 호출이 반복적으로 이루어져도 실제로 생성된 객체는 최초 생성된 객체를 반환 해준다.
위의 코드에서 전역변수인 instance를 static으로 생성하면서 인스턴스화 하지 않고 사용할 수 있게 하였지만 접근 제한자가 private로 되어 있어 직접적인 접근이 불가하다.
또한 SingleTon 클래스의 생성자역시 private로 선언이 되어있어 new 를 통한 직접적인 객체 생성도 불가능하다.
해당 instace객체를 사용하기 위해서는 getInstance 메서드를 호출하여 instace객체를 얻을 수 있게 된다.
싱글톤 패턴의 목적
한번의 객체 생성을 통하여 해당 객체의 재사용이 가능하기 때문에 무분별한 중복 객체 생성으로 인한 메모리 낭비를 방지할 수 있다.
그리고 싱글톤패턴의 형식으로 생성된 객체는 무조건 한번의 생성으로 전역성을 가지게 되므로 다른 객체와 공유가 용이하다.
싱글톤 패턴의 단점
싱글톤 패턴의 사용으로 해당 객체가 다른 객체와의 공유가 용이해짐으로써 참조되는 영역이 많아지게되면 객체간의 결합도가 높아져서 객체 지향 설계 원칙에 어긋나게 된다.
반응형