본문 바로가기

DEVELOPER/Java

static 응용 - 싱글톤 패턴(singleton pattern)

반응형
디자인 패턴 : 더 효율적이고 유지보수가 쉽게 객체지향으로 프로그래밍해서 23가지 패턴으로 정리한 것
그중 한 가지가 싱글톤 패턴이다.

 

싱글톤 패턴이란?


프로그램에서 인스턴스가 단 한 개만 생성되어야 하는 경우 사용하는 디자인 패턴 (예를 들면 회사(?))

static 변수, 메서드를 활용하여 구현 할 수 있음.

 


ex. 싱글톤 패턴으로 회사 객체 구현하기


public class Company {

	private static Company instance = new Company(); //유일한 객체
	
	private Company() {
		
	}
	
	
	//instance 생성없이 메서드를 호출할 것이기 때문에 static으로 적용
	public static Company getInstance() {
		
		if(instance == null) {
			
			instance = new Company();
		} //instance가 없으면 생성해줘라 라는 방어적인 코드

		return instance;
	}
}

① 생성자는 private으로 선언

② 클래스 내부에 유일한 private 인스턴스 생성

private static Company instance = new Company();

③ 외부에서 유일한 인스턴스를 참조할 수 있는 public 메서드 제공

 

결과 test

public class CompanyTest {

	public static void main(String[] args) {

		
		Company company1 = Company.getInstance();
		
		Company company2 = Company.getInstance();
		
		System.out.println(company1);
		System.out.println(company2);
		
		//company1과 company2의 참조값이 같다.
		
	}

}

 

여기서는 static을 이용한 싱글톤 패턴을 간단하게 알아보았습니다. 다음 디자인 패턴을 공부할 때 다시 한번

구체적으로 공부해보겠습니다.

 

반응형

'DEVELOPER > Java' 카테고리의 다른 글

객체 배열  (0) 2021.04.23
배열(array)  (0) 2021.04.23
변수의 유효 범위와 메모리  (0) 2021.04.22
Static 변수  (2) 2021.04.22
객체 간의 협력 (collaboration)  (0) 2021.04.22