생성자가 여러번 호출되더라도 하나의 인스턴스만을 생성하는 패턴
장단점
장점
- 메모리 효율적
- 다른 인스턴스와 데이터 공유
- 공통된 객체를 여러개 생성하여 사용하기에 편리
단점
- 객체지향의 개방-폐쇄 원칙을 위배 → 수정과 테스트 어려움
사용방법
- 선언하고자 하는 객체 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 모두 같은 인스턴스!
'Develop > Java' 카테고리의 다른 글
[Java] JVM 구조 및 동작원리 - 1 (0) | 2023.01.03 |
---|---|
[Java] 스트링풀(String Pool) (0) | 2022.12.31 |