티스토리 뷰
싱글톤
static으로 객체의 인스턴스가 한 개만 생성되는 디자인 패턴
인스턴스(객체) 가 절대적으로 한 개만 존재하는 것을 보장하고 싶을 때 사용
장점
- 메모리 방지 낭비
- 전역 인스턴스이기 때문에 다른 클래스의 인스턴스들이 데이터 공유하기 쉬움
- 안드로이드의 경우 주요 클래스들을 전달하기 번거로운데 싱클톤 클래스로 어디서나 접근하도록 설계
문제점
- 너무 많은 데이터를 공유시키면 유지보수와 테스트가 어려움(결합도가 높아지기 때문)
- 멀티쓰레드 환경에서 동기화처리를 안하면 인스턴스가 두 개 생성될 수 있음
public class Px6 {
public static void main(String[] args) {
Normal n1 = new Normal();
Normal n2 = new Normal();
System.out.println(n1); // 주소값
System.out.println(n2); // 주소값
System.out.println(n1==n2); // false
Car car1 = Car.getInstance();
Car car2 = Car.getInstance();
System.out.println(car1); // 주소값
System.out.println(car2); // 주소값
System.out.println(car1==car2); // true
}
}
class Normal {
}
class Car {
private static Car car;
private Car() {}
static Car getInstance() {
// new 키워드로 Car 객체를 생성한 적이 없으면
if(car == null) {
car = new Car();
}
return car;
}
}
'배운 것 기록 > java' 카테고리의 다른 글
상속 (0) | 2022.05.31 |
---|---|
Scanner (0) | 2022.05.30 |
자동 증가값 생성 - static (0) | 2022.05.28 |
[eclipse] 최소값, 절대값 (0) | 2022.05.26 |
배열에 순서대로 넣어서 출력하기(ArrayList) (0) | 2022.05.25 |
댓글