<aside> 💡 하나의 인스턴스를 오직 하나만 가지는 클래스
</aside>
public static void main(String[] args) {
Setting setting1 = new Setting();
Setting setting2 = new Setting();
System.out.println(setting1!=setting2);
}
다른 것을 확인 할 수 있다.
싱글톤은 절대 new로 인스턴스를 만들면 싱글톤 패턴에 어긋나기 때문에 사용하면 안된다.
밖에서 Setting에 대한 값을 사용하지 못하게 하려면
private Setting(){}
생성자를 만들면 해당위에 있는 코드는 생성을 하지 못한다.
public class Setting {
private Setting(){}
public static Setting getInstance(){
return new Setting();
}
}
하나의 인스턴스를 가져와 반환을 해주면 하나의 인스턴스로 여러개를 사용할수있다.
public static void main(String[] args) {
Setting setting1 = Setting.getInstance();
Setting setting2 = Setting.getInstance();
System.out.println(setting1!=setting2);
}
하지만 이렇게 사용하면 인스턴스를 두개 사용하는것과 마찬가지로 하나만 사용하게 해야한다.
public class Setting {
//2.인스턴스를 담을 클래스변수를 하나 선언
private static Setting instance;
//1. 생성자를 사용못하게 막아놓고
private Setting() {
}
//3. 하나의 인스턴스를 가지게하는 스태틱 메서드 작성
public static Setting getInstance() {
if (instance == null) {
instance = new Setting();
}
return instance;
}
}
false