거꾸로 바라본 세상
반응형

1. 싱글톤(Singleton)이란?


- 전체 프로그램에서 단 하나의 객체(인스턴스)만 만들도록(생성하도록) 보장해야할 때가 있다. 그래서 단 하나만 생성된다고 해서 싱글톤(Singleton)이라고 부른다.

즉, 싱글톤은 공용으로 사용하는 클래스에 적용하면 알맞다.


2. 싱글톤(Singleton) 만드는 법 


- 클래스 외부에서 new 연산자로 생성자를 호출할 수 없도록 막아야한다. 이유는 생성자를 호출한 만큼 객체가생성되기 때문이다. 


(1) 자신의 타입인 정적필드를 하나 선언하고 자신의 객체를 생성해 초기화한다. 그리고 private 접근 제한자를 붙여 필드 값을 변경하지 못하도록 막는다.

< ex) private static 클래스명 singleton = new 클래스명(); >

(2) 생성자자 앞에 private 접근 제한자를 붙여준다.(외부에서 생성자 호출을 막기 위해)

(3) 외부에서 호출할 수 있는 정적 메소드인 getInstance()를 선언하고, 정적필드에서 참조하고 있는 자신의 객체를 리턴해준다.

< ex) static 클래스명 getInstance() { return singleton; } >



singleton.java


public class 클래스명 {

//정적 필드

private static 클래스명 singleton = new 클래스명();


//생성자

private 클래스명() { } 

//정적 메소드

static 클래스명 getInstance() {

return singleton;

}


외부에서 객체를 얻는 유일한 방법은 getInstance() 메소드를 호출 하는 방법 뿐이다.



getInstance() 메소드는 단 하나의 객체만을 리턴함으로 변수1과 변수2는 동일 객체를 참조한다. 

클래스명 var1 = 클래스명.getInstance();

클래스명 var2 = 클래스명.getInstance();

반응형

'Software Engineering > Design Pattern' 카테고리의 다른 글

Observer Pattern(관찰자 패턴)  (0) 2023.04.20
Template Method Pattern(템플릿 메서드 패턴)  (0) 2016.04.26
Adapter Pattern  (0) 2016.04.25
Iterator Pattern  (0) 2016.04.21
profile

거꾸로 바라본 세상

@란지에。

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!