객체를 static 하게 두어 어디서 객체 instance를 사용하던 최초에 생긴 instance를 공유해서 사용하도록 하는 패턴
객체 생성을 하나만 하는 것이 목적이기 때문에, 생성자를 private 하게 설정.
보통 객체 생성 및 조회는 getInstance() 라는 public method를 이용해서 진행
public class CarClass {
private static CarClass carClass;
private CarClass() {
super();
System.out.println("Constructor");
// TODO Auto-generated constructor stub
}
public static CarClass getInstance() {
if(carClass == null) {
carClass = new CarClass();
}
return carClass;
}
private static int speed = 0;
public static void speedUp() {
speed++;
System.out.println("현재 속도 : " + speed);
}
public static void speedDown() {
speed--;
System.out.println("현재 속도 : " + speed);
}
}
public class SingletonMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
CarClass carClass = CarClass.getInstance();
CarClass carClass1 = CarClass.getInstance();
carClass.speedUp();
carClass1.speedUp();
}
}
---->
Constructor
현재 속도 : 1
현재 속도 : 2
반응형
'JAVA' 카테고리의 다른 글
[Springboot] lombok 설치 및 STS 연동 (0) | 2022.02.09 |
---|---|
[JAVA] try / catch / finally (0) | 2022.01.25 |
[JAVA] 다형성(polymorphism) (0) | 2022.01.17 |