1. 개념
싱글톤 패턴은 단 하나의 인스턴스를 생성해 사용하는 디자인 패턴이다.
1.1. 장점
- 하나의 인스턴스를 사용 -> 메모리 낭비를 방지할 수 있음
- 전역 인스턴스 -> 다른 클래스의 인스턴스들이 데이터를 공유
1.2. 단점
- 싱글톤 인스턴스가 너무 많은 일을 하거나 많은 데이터를 공유시킬 경우,
SOLID 원칙 중 SRP, OCP 원칙에 위배됨. - 즉, 수정과 테스트가 어려워짐
- 꼭 필요한 경우아니면 지양해야 함
1.3. 활용 상황
- 공통된 객체를 여러 개 생성해서 사용해야하는 상황
- 전역에서 사용될 하나의 객체를 만들어야하는 상황
- ex. DBCP(Database Connection Pool), 로거(Logger)
2. 구조
3. 코드
// SingletonPatternDemo.java
public class SingletonPatternDemo {
public static void main(String[] args) {
// 항상 getter 로 객체를 받아와야 함.
SingleObject object = SignleObject.getInstace();
}
}
// SingleObject.java
public class SingleObject {
private static SingleObject instance = new SingleObject();
// 생성자는 내부에서만 호출되게 한다.
private SingleObject(){}
// 외부에서 객체를 받아갈 수 있는 방법은 getInstance() 가 유일하다.
public static SingleObject getInstance() {
return instance;
}
}
4. 참고
'취업과 기본기 튼튼 > 빽 투더 기본기' 카테고리의 다른 글
[디자인 패턴 4편] 생성 패턴, 빌더 (Builder) (2) | 2020.02.17 |
---|---|
[디자인 패턴 3편] 생성 패턴, 팩토리 메쏘드 (Factory) (0) | 2019.11.21 |
[디자인 패턴 1편]. 디자인 패턴 개요 (0) | 2019.11.19 |
빽 투더 기본기 [OS 8편]. 가상 메모리 관리 (0) | 2019.10.27 |
빽 투더 기본기 [OS 7편]. 메모리 관리 2 (0) | 2019.10.25 |