Contents
1. 싱글톤을 적용할 클래스클래스의 인스턴스를 하나만 생성하고 그 인스턴스에 대한 전역적인 접글을 제공하는 디자인 패턴입니다.
1. 싱글톤을 적용할 클래스
public class Doorman {
// main 실행 전에 실행, static에 저장되어 전역에 공유
static Doorman instance = new Doorman();
// 기본 생성자 변경
private Doorman() {}
public void 쫓아내(Animal animal) {
System.out.println(animal.getName()+" 쫓아내");
}
}
- 기본 생성자에 private을 걸어서 다른 곳에서 인스턴스 생성을 막습니다.
- static으로 1개만 생성된 인스턴스를 전역에 공유합니다.
// main
public class App {
public static void main(String[] args) {
Doorman doorman = Doorman.instance;
Doorman doorman2 = Doorman.instance;
// 두 객체의 주소가 같은지 확인
System.out.println(doorman.hashCode());
System.out.println(doorman2.hashCode());
Cat cat = new Cat();
Mouse mouse = new Mouse();
doorman.쫓아내(cat);
doorman.쫓아내(mouse);
}
}
- doorman 과 doorman2 가 참조하고 있는 주소는 동일한 메모리 주소입니다.
Share article