싱글톤 패턴 (Singleton Pattern):
- 싱글톤 패턴은 어떤 클래스가 단 하나의 객체를 가지고, 이에 대한 전역적인 접근점을 제공하는 패턴이다.
- 이 패턴을 사용하면 특정 클래스의 인스턴스가 하나만 생성되도록 보장할 수 있으며, 어디서든 이 인스턴스에 접근할 수 있게 전역의 개념으로 객체를 사용할 수 있다.
- 인스턴스를 무분별하게 많이 만들어서 메모리를 많이 잡아먹는 현상을 방지할 수 있다.
-> 메모리 절약을 위해 인스턴스가 필요할 때 새로 만들지 않고 기존의 인스턴스를 활용하는 기법
- 의존성이 높아진다는 단점이 있다.
package Singleton;
public class singleton {
/*
* 싱글톤 패턴 - 객체를 1개만 만들어 유지하기 위한 디자인 패턴
* 1. 외부에서 생성자를 사용할 수 없도록 생성자에 private 붙임
*/
private singleton() {}
/*
* 2. 자신의 클래스 내부에서 스스로의 객체 1개를 생성합니다.
* 이 때, 멤버변수는 힙에 할당된 객체 없이 쓸 수 있도록 static 입니다.
*/
private static singleton instance;
static {
instance=new singleton();
}
/*
* 3.외부에서 이 클래스의 객체를 필요로 하는 경우
* 2번에서 static으로 생성된 객체의 주소를 return 합니다.
*/
public static singleton getInstance() {
if(instance==null) {
instance = new singleton();
}
return instance;
}
}
package Singleton;
public class MainClass {
public static void main(String[] args) {
//Singleton 객체는 생성자가 private이므로 인스턴스 생성 불가
//singleton s1 = new singleton();
//getInstance메소드는 static이어서 new 없이도 바로 사용 가능
singleton s1= singleton.getInstance();
System.out.println("s1의 레퍼런스 : "+s1);
singleton s2= singleton.getInstance();
System.out.println("s2의 레퍼런스 : "+s2);
}
}
'LANG.. > JAVA' 카테고리의 다른 글
final (0) | 2024.01.17 |
---|---|
[디자인 패턴] 템플릿 메소드 패턴 (Template Method Pattern) (1) | 2024.01.16 |
static (0) | 2024.01.12 |
객체 지향 프로그래밍(OOP) (0) | 2024.01.10 |
오버로딩과 오버라이딩 (0) | 2024.01.10 |