1. Singleton
객체의 인스턴스가 오직 1개만 생성되는 패턴이다.
사용하는 이유
최초 한번만 new 연산자를 사용해서 고정된 메모리 영역을 사용하기 때문에 다시 접근할 때 메모리 낭비를
방지할 수 있다.
뿐만 아니라 이미 생성된 인스턴스를 사용하니 속도 측면에서도 이점이 있으며,
서로 다른 클래스간 데이터 공유가 쉬워진다.
싱글톤 인스턴스는 전역으로 사용되는 인스턴스이기 때문에 다른 클래스의 인스턴스들이 접근하여 사용할 수 있다.
하지만 동시에 많은 접근을 하게되면 동시성 문제가 발생할 수 있다.
문제점
당연히 장점만 있는 것이 아닌 단점도 있는다.
1. Singleton 패턴을 구현하는 코드 자체가 많이 필요하다.
2. 테스트가 어렵다.
어플리케이션 전역에서 상태를 공유하기 때문에 테스트를 진행하려면 매번 상태를 초기화시켜야 하는 단점이 있다.
3. 자식 클래스를 만들수 없다.
반응형