싱글톤 패턴이란? 

애플리케이션이 시작될 때, 어떤 클래스가 최초 한번만 메모리를 할당하고 해당 메모리에 인스턴스를 만들어 사용하는 패턴

즉, 싱글톤 패턴은 '하나' 의 인스턴스만 생성하여 사용하는 디자인 패턴 

( 인스턴스가 필요할때, 똑같은 인스턴스를 만들지 않고 기존의 인스턴스를 활용하는것)

생성자가 여러번 호출되어도, 실제로 생성되는 객체는 하나이며 최초로 생성된 이후에 호출된 생성자는 이미 생성한 객체를 반환시키도록 만드는 것 ( java에서는 생성자를 private으로 선언해 다른곳에서 생성하지 못하도록 만들고, getInstance()메소드를 통해 받아서 사용하도록함)

 

왜쓰나요???

먼저, 객체를 생성할때마다 메모리 영역을 할당받아야함, 하지만 한번의 new를 통해 객체를 생성한다면 메모리 낭비를 방지할 수 있음. 또한 싱글톤으로 구현한 인스턴스는 전역이므로, 다른 클래스의 인스턴스들이 데이터를 공유하는 것이 가능함

 

단점 

- 객체지향 설계원칙중 개방-폐쇄 원칙에 위배될 수 있음

만약 싱글톤 인스턴스가 혼자 너무 많은 일을 하거나, 많은데이터를 공유시키면 다른 클래스들 간의 결합도가 높아지게됨
결합도가 높아지면 유지보수가 힘들고, 테스트가 원활하지 않을 수 있음

 

 

'개념정리' 카테고리의 다른 글

4. String, StringBuffer, StringBuilder 차이 및 장단점  (0) 2023.04.06
3. 자바 컴파일 과정  (0) 2023.04.05
개념 정리  (0) 2023.04.05
1. OOP 객체지향 프로그래밍  (0) 2023.04.05
복사했습니다!