1. Singleton Pattern?
2. 싱글톤 패턴 사용의 이점
3. 싱글톤 패턴 사용의 문제점
syncronized 키워드
를 사용해야 함4. 구현 방법
5. 구현 코드
package oop.singleton;
public class SingletonClass {
//#2. 내부에서는 private에 접근 가능하므로 직접 객체를 생성 -> 객체는 오직 내부에서 1개
private static SingletonClass sc=new SingletonClass();
//#1. 외부에서 생성자에 접근 금지 -> 접근 제한자를 private로 설정
private SingletonClass () {}
//#3. 외부에서 private 멤버에 접근 가능한 getter 생성
//#4. 객체없이 외부에서 접근할 수 있도록 getter 변수에 public static 추가
public static SingletonClass getSingletonClass () {
return sc;
}
public void sayHello() {
System.out.println("Hello");
}
}
package oop.singleton;
public class SingletonTest {
public static void main(String[] args) {
SingletonClass sc1=SingletonClass.getSingletonClass();
sc1.sayHello();
SingletonClass sc2=SingletonClass.getSingletonClass();
sc2.sayHello();
//#5. 외부에서는 언제나 getter를 통해 객체를 참조하므로 하나의 객체 재사용
System.out.println(sc1==sc2);
}
}
메인 메소드에서 sc1과 sc2가 참조하는 객체는 같으므로 s1==s2
Reference
https://tecoble.techcourse.co.kr/post/2020-11-07-singleton/