1. 싱글톤 패턴

구창회·2023년 5월 20일
0

디자인 패턴

목록 보기
1/1

요즘 푹 빠진 게임이 있다.
샌드박스에서 나온 알비온 온라인이라는 게임인데, 이 게임은 맥이든 아이폰이든 아이패드든, 윈도우든 리눅스든 모든 곳에서 호환이 되는 게임이라고 홍보를 한다.
나도 실제로 아이패드로 자주 하고, 가지고 있는 윈도우 노트북으로도 하고 있다.

그런데 만약?

내가 아이패드로 할 때의 설정과 윈도우로 할 때의 설정이 다르다면 어떻게 될까?

한마디로 매우 불편할 것이다.
즉, 기기는 달라도 내가 윈도우에서든, 아이패드에서든 어디서든 설정창을 열게 되면 나에게 보여지는 설정창은 '하나'여야만 한다.
말 그대로 각자 새로운 객체가 아닌 하나 여야 된다는 것.

이런 상황일 때 필요한 것이 싱글톤 패턴 (Singleton Pattern) 이다.


코드 구현 - Singleton

// 클래스를 하나 만든다고 가정해보자

public class Setting {
	private static Setting instance; // 외부에서 접근할 수 없는 하나의 인스턴스 변수를 선언해두고
    
    private Setting() {}; // 외부에서 Setting 클래스의 객체 생성이 불가능 하게끔 하기 위해 private 생성자
    
    public static Setting getInstance() {
    
    	if (instance == null) { // 선언한 인스턴스 변수가 초기화가 되지 않았을때
        	instance = new Setting(); // 초기화 하여 객체 생성!
        } // 인스턴스 변수가 이미 초기화가 된 상태라면 해당 객체를 반환하여 같은 인스턴스 객체를 반환하게 된다.
        
        return instance; // 해당 객체를 반환한다.
    }
   
    
}
profile
백엔드 엔지니어 프로 지망생

0개의 댓글