티스토리 뷰
✏️ 싱글톤 패턴
- 객체의 인스턴스가 오직 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 |
댓글