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


주심언니
싱글톤 패턴싱글톤 패턴은 어떤 클래스가 최초 한 번만 메모리를 할당하고 그 메모리에 객체를 만들어 사용하기 위한 패턴이다. 이를 통해 어떤 클래스에서든지 그 클래스의 인스턴스를 생성하고 접근할 수 있다.간단히 설명하면,
- 생성자를 비공개로 만든다.
- 클래스 내부에 자기 자신의 인스턴스(객체)를 생성한다.
- 인스턴스(객체)를 반환하는 정적 메서드를 제공한다.
이렇게 하면 해당 클래스의 인스턴스(객체)는 하나만 존재하게 되어, 어디서든지 그 인스턴스(객체)를 사용할 수 있다. 이 패턴을 사용하면 불필요한 인스턴스(객체) 생성을 막고, 메모리를 절약할 수 있다.
예제코드
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