말 그대로 하나의 톤으로`만 찍어 바르겠다.+-


주심언니
싱글톤 패턴싱글톤 패턴은 어떤 클래스가 최초 한 번만 메모리를 할당하고 그 메모리에 객체를 만들어 사용하기 위한 패턴이다. 이를 통해 어떤 클래스에서든지 그 클래스의 인스턴스를 생성하고 접근할 수 있다.간단히 설명하면,
- 생성자를 비공개로 만든다.
- 클래스 내부에 자기 자신의 인스턴스(객체)를 생성한다.
- 인스턴스(객체)를 반환하는 정적 메서드를 제공한다.
이렇게 하면 해당 클래스의 인스턴스(객체)는 하나만 존재하게 되어, 어디서든지 그 인스턴스(객체)를 사용할 수 있다. 이 패턴을 사용하면 불필요한 인스턴스(객체) 생성을 막고, 메모리를 절약할 수 있다.
예제코드
package ex04;
// 싱글톤 패턴
// 프레지던트르 메모리에 딱 한번만 띄울꺼다.
// President를 new를 한 번만 해!!
class President {
static President instance = new President();
// static 안 붙이면 이코드 절때 실행안됨
// static 붙이면 메인 실행 되기 전에 실행 됨
// 그때 new가 실행됨 메인 실행전 heap이 뜸
// 그리고 가리키는 주소는 instance
// instance 한테 접근하는 거다.
private President() {
}
}
public class SingleTonEx01 {
public static void main(String[] args) {
President p1 = President.instance;
System.out.println(p1.hashCode());
President p2 = President.instance;
System.out.println(p2.hashCode());
// hashCode 임의의 난수
// 객체.해쉬코드
// 이 두 코드는 같다.
}
}
// 실행 값
793589513
793589513
객체를 딱 한번만 메모리에 올릴 수 있는 패턴
- President p1 = new President(); 이렇게 하면 생성자에 접근을 못해 private니까
- 내가 new 할 수 있는 방법이 없다.
- 메인 시작 전에 한번 띄운다 --> 어디에?? heap에!! (메모리 공간이 다름)
메모리에 한번만 띄우고 싶으면 메인 시작전에 staic 으로 띄워도 되지만싱글톤 패턴으로 --> heap에 띄우면서도 한번 띄울 수 있는 방법이 있구나!
Share article