티스토리 뷰

BackEnd/JAVA

싱글톤 패턴(SingleTone Pattern)

JINSUKUKU 2021. 10. 25. 23:58

✏️  싱글톤 패턴 

- 객체의 인스턴스가 오직 1개만 생성되는 패턴을 의미한다

- 최초 생성 이후에 호출된 생성자는 최초에 생성자가 생성한 객체를 리턴한다.

- 고정된 메모리 영역을 얻으면서 동시에 단 한 번만 new를 사용하여 메모리 낭비를 방지할 수 있다.

 

✏️  구현하기

private static BankService instance;

객체의 인스턴스를 저장할 필드를 생성한다. 싱글톤 패턴의 인스턴스는 단 하나만이 허용되므로, 모든 객체에서 공유하도록 static 필드로 생성한다. 접근 지정자는 private로 지정하여, 외부 접근을 막는다 

 

private BankService() {
	customers = new Customer[MAX_CUSTOMERS];
	numberOfCustomers = 0;
}

객체의 인스턴스를 외부에서 생성하지 못하도록 생성자의 접근 지정자를 private로 설정한다. 객체 인스턴스의 생성을 생성자가 아닌 getInstance() 메서드를 통해 진행하여  이미 한 번 인스턴스가 생성되었다면 기존의 인스턴스를 반환하도록 해야 한다

 

// 객체(인스턴스)없이 외부 접근이 가능하도록 static 키워드를 사용한다
public static BankService getInstance(){
	if(instance == null){ 
		instance = new BankService();
	}		
	return instance;
}

생성자의 접근 지정자가 private이므로, 외부에서 객체를 생성할 수 없다. 객체를 생성할 때에는 public 접근 지정자를 사용한 getInstance()를 사용해야 하는데 이때 객체 없이 사용할 수 있도록 static 키워드를 사용해 메서드를 선언해야 한다. 

 

만약 한 번이라도 인스턴스가 생성되었다면 기존의 인스턴스를 반환한다. 인스턴스가 생성된 적이 없어 Class DataType의 기본값인 null인 경우 생성자를 통해 인스턴스를 생성해 instance 필드를 초기화한 후 반환한다.

 

 

 

 

 

'BackEnd > JAVA' 카테고리의 다른 글

ColletionAPI  (0) 2021.11.12
static, final  (0) 2021.10.26
[Ch.05] 2. String 배열, 다차원 배열  (0) 2021.03.14
[Ch.05] 1. 배열  (0) 2021.03.11
[Ch.04] 조건문과 반복문  (0) 2021.03.05
댓글
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
최근에 올라온 글
글 보관함
Total
Today
Yesterday