Develop/Java
[Java/디자인패턴]Singleton/싱글톤
순무엄마동생
2021. 1. 22. 16:28
생성자가 여러번 호출되더라도 하나의 인스턴스만을 생성하는 패턴
장단점
장점
- 메모리 효율적
- 다른 인스턴스와 데이터 공유
- 공통된 객체를 여러개 생성하여 사용하기에 편리
단점
- 객체지향의 개방-폐쇄 원칙을 위배 → 수정과 테스트 어려움
사용방법
- 선언하고자 하는 객체 private static 선언
- 생성자 private 선언
- 객체를 받아오는 메소드 public static 선언
public class Car {
private static Car instance = new Car();
private Car() {
}
public static Car getInstance() {
return instance;
}
... // 다른 메소드들
}
public class carTest {
public static void main(String[] args) {
Car car = Car.getInstance();
...
Car car2 = Car.getInstance();
}
}
public class carTest2 {
public static void main(String[] args) {
Car car = Car.getInstance();
...
}
}carTest의 car, car2와 carTest2의 car 모두 같은 인스턴스!