개념정리
2. 싱글톤패턴 (Singleton pattern)
한비치
2023. 4. 5. 19:40
싱글톤 패턴이란?
애플리케이션이 시작될 때, 어떤 클래스가 최초 한번만 메모리를 할당하고 해당 메모리에 인스턴스를 만들어 사용하는 패턴
즉, 싱글톤 패턴은 '하나' 의 인스턴스만 생성하여 사용하는 디자인 패턴
( 인스턴스가 필요할때, 똑같은 인스턴스를 만들지 않고 기존의 인스턴스를 활용하는것)
생성자가 여러번 호출되어도, 실제로 생성되는 객체는 하나이며 최초로 생성된 이후에 호출된 생성자는 이미 생성한 객체를 반환시키도록 만드는 것 ( java에서는 생성자를 private으로 선언해 다른곳에서 생성하지 못하도록 만들고, getInstance()메소드를 통해 받아서 사용하도록함)
왜쓰나요???
먼저, 객체를 생성할때마다 메모리 영역을 할당받아야함, 하지만 한번의 new를 통해 객체를 생성한다면 메모리 낭비를 방지할 수 있음. 또한 싱글톤으로 구현한 인스턴스는 전역이므로, 다른 클래스의 인스턴스들이 데이터를 공유하는 것이 가능함
단점
- 객체지향 설계원칙중 개방-폐쇄 원칙에 위배될 수 있음
만약 싱글톤 인스턴스가 혼자 너무 많은 일을 하거나, 많은데이터를 공유시키면 다른 클래스들 간의 결합도가 높아지게됨
결합도가 높아지면 유지보수가 힘들고, 테스트가 원활하지 않을 수 있음