싱글톤 패턴
싱글톤 패턴
App 이 시작할 때 어떤 클래스가 최초 한번만 메모리를 할당하고 그 메모리에 인스턴스를 만들어 사용하는 디자인 패턴
생성자가 여러 차례 호출되더라고 실제로 생성되는 객체는 하나이며 최초 생성 이후에 호출된 생성자는 최초에 생성한 객체를 반환함
단 하나의 인스턴스를 생성해 사용하는 디자인 패턴
기존 인스턴스를 계속 사용함
-
사용 이유
-
고정된 메모리 영역을 얻으면서 인스턴스를 사용하기 때문에 메모리 낭비 방지
-
인스턴스는 전역 인스턴스이기 떄문에 다른 클래스의 인스턴스들이 데이터 공유하기 쉬움
-
공통된 객체를 여러개 생성해서 사용하는 상황에서 많이 사용
-
인스턴스가 절대적으로 한개만 존재하는 것을 보증하고 싶을 경우 사용
-
두번째 이용시부터 객체 로딩 시간이 줄어들어 성능 상승
-
-
단점
-
싱글톤 인스턴스가 너무 많은 일을 하거나 많은 데이터를 공유시킬 경우 다른 클래스의 인스턴스들간 결합도가 높아져 “개방-폐쇄” 원칙 위배 (객체 지향 설계 원칙에 어긋남)
-
수정이 어려워지고 테스트하기 어려워짐
-
멀티 스레드 환경에서 동기화 처리 안 하면 인스턴스가 두개 생성되는 경우 발생할 수 있음
-
꼭 필요한 경우 아니면 지양해야 함
-