본문 바로가기

Java/이론

[Java] 싱글톤 (Singleton)

객체를 여러개 찍어내더라도

객체가 유일한 객체이고 싶게 하려면 어떻게 할까요?

이름이 다른 객체를 2개 생성하고

주소값을 출력해보면 

서로 다른 것을 확인할 수 있습니다.

 

Puft p = new Puft("김래현", 26, "puft");

Puft p2 = new Puft("김래현", 26, "puft");

 

-----------------------------------------------------

com.puft.dec135.main.Puft@139a55

com.puft.dec135.main.Puft@1db9742

 

여기서는 싱글톤 패턴을 이용하면 되는데요.

싱글톤 패턴이란

클래스가 최초 한번만 메모리를 할당하고 (static)

그 메모리에 객체를 만들어서 사용하는 디자인 패턴입니다.

고정된 메모리 영역을 얻으면서 한번의 new로 객체를 사용하기 때문에

메모리 낭비를 방지할 수 있다는 장점이 있습니다.

구현하는 방법은 객체를 만드는 클래스에

 

private static final Puft PUFT = new Puft("김래현", 5, "Puft");

static final로 유일한 객체를 선언하는 것입니다.

public static Puft getPuft() {

return PUFT;

}

 

 이를 get함수를 사용해서 main에서 사용하면 됩니다.

 

Puft p = new Puft("김래현", 26, "puft");

Puft p2 = Puft.getPuft();

 

둘은 같은 객체가 됩니다.

 

 

'Java > 이론' 카테고리의 다른 글

[Java] GUI(Graphical User Interface)  (0) 2024.12.16
[Java] Factory  (0) 2024.12.13
[Java] 다형성(Polymorphism)  (0) 2024.12.13
[Java] 추상화 (abstract)  (0) 2024.12.13
[Java] 캡슐화(Encapsulation)  (0) 2024.12.13