싱글톤 패턴
1. 싱글톤 패턴이란
- 어플리케이션 시작 시, 객체에 딱 한번만 메모리를 할당하고, 한 번 생성한 객체를 계속 사용하는 방식.
- 한 번 인스턴스를 만들어 놓고, 그 인스턴스를 시스템 어디서든 접근가능하도록 만드는 방식.
2. 사례
- DBCP, 쓰레드풀, 캐시, 대화상자, 사용자설정, 레지스트리 설정, 로그기록 객체 등
- 모든 시스템이 한가지의 객체만을 사용해야 할 때 적합. ex) 조회 수 카운팅
3. 장점
- 불필요한 자원낭비를 막는다.
* 객체 메모리를 딱 한 번 할당하기 때문에, 두번째 이용 시 부터는 객체의 로딩시간이 줄어든다.
4. 단점
- 결합도가 높아진다.
* 하나의 클래스가 하는 일이 많아짐. 클래스의 경우 고유의 기능을 잘 처리하도록 적당히 쪼개져야 하는데(응집도), 하나의 객체가 하는 일이 많아지게 된다면 결합도가 높아질 수 있음. 이는 객체지향의 '개방-폐쇄' 원칙을 위반하는 결과를 가져옴.
* 개방-폐쇄 원칙이란, 확장에는 열려있고 수정에는 닫혀있어야 한다는 원칙이다. (추후 조금 더 정리해서 메모)
* 싱글톤 패턴 객체를 수정하게 되면, 이를 사용하는 모든 객체에 영향을 끼칠 확률이 생긴다.
- 멀티스레드 환경에서 고려할 점이 많다.
* 싱글톤 패턴 사용 시 고려해 주어야 할 점이 많다. 동기화가 되지 않을 때 문제점이 생길 수 있다.
멀티스레드 환경에서의 싱글톤패턴 - https://ithub.tistory.com/61
https://www.gpgstudy.com/forum/viewtopic.php?t=5138
참고사이트
https://siyoon210.tistory.com/88
'공부 > 디자인패턴' 카테고리의 다른 글
[디자인패턴] 디자인패턴의 종류 (0) | 2020.07.26 |
---|
댓글