디자인 패턴(Design Pattern) 중 싱글톤(Singleton) 패턴은 특정 클래스에 대한 인스턴스를 단 한 번만 Static 메모리 영역에 할당하고 해당 클래스에 대한 생성자를 여러 번 호출하더라도 최초에 생성된 객체를 반환하는 디자인 패턴입니다. 즉 애플리케이션의 특정 클래스에 대한 유일 객체를 보장하는 디자인 형태라고 볼 수 있습니다.
일반적으로 싱글톤 패턴이 적용된 클래스에 대한 new 연산을 수행하더라도 이미 한번 할당된 메모리 영역의 인스턴스를 사용하기 때문에 무분별한 new 연산으로 인한 메모리 낭비를 방지 할 수 있습니다. 안드로이드 스튜디오에서는 클래스 파일을 생성하는 시점에 자동으로 싱글톤 패턴이 적용된 클래스 형태로 파일을 생성해줍니다.
public class MovieDatabaseManager {
private static MovieDatabaseManager myDBManager = null;
//MovieDatabaseManager 싱글톤 패턴으로 구현
public static MovieDatabaseManager getInstance(Context context)
{
if(myDBManager == null)
{
myDBManager = new MovieDatabaseManager(context);
}
return myDBManager;
}
}
1. Android Studio 자동 생성
▼ 클래스 파일을 생성하고자 하는 Directory에서 우 클릭을 통해 [New]-[Java class] 메뉴를 클릭합니다.
▼ 생성하는 class 파일의 Class Name을 지정하고 Kind Tab을 열어 Singleton을 선택해줍니다. 그 다음 OK 버튼을 클릭하면 아래와 같이 자동으로 싱글톤 패턴이 적용된 클래스가 생성되는 것을 확인할 수 있습니다.
public class sample {
private static final sample ourInstance = new sample();
public static sample getInstance() {
return ourInstance;
}
private sample() {
}
}