java static_3_싱글톤 패턴(singleton pattern)

0

Java 공부

목록 보기
11/18

싱글톤 패턴이란?

  • 프로그램에서 인스턴스가 단 한 개만 생성되어야 하는 경우 사용하는 디자인 패턴
  • static 변수, 메서드를 활용하여 구현 할 수 있음

싱글톤 패턴을 사용하는 이유

  • 날자와 시간은 여러가지 를 가지고 있을 수 없는 단 하나뿐이다.(서울 표준시.)
  • 회사의 사원들은 여러명 일 수 는 있어도 회사는 단 하나뿐이다.

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

  1. 생성자는 private으로 선언
private Company() {}
  1. 클래스 내부에 유일한 private 인스턴스 생성
private static Company instance = new Company();
  1. 외부에서 유일한 인스턴스를 참조할 수 있는 public 메서드 제공
public static Company getInstance() {
	if( instance == null) { // 방어적인 코드(보험)
		instance = new Company();
	}
	return instance;
}

구현

//SingletonPattern 예제
public class Company {
	// static 으로 객체 1회 생성
	private static Company instance = new Company();
	// 인스턴스가 생성하지 못하게 private로 객체 선언
	private Company() {
	}
	// 외부에서 해당 메서드로 객체 호출
	public static Company getInstance() {
		if (instance == null) { 
			instance = new Company();
		}
		return instance;
	}
}

테스트

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);
	}
}

basics05.Company@5aaa6d82
basics05.Company@5aaa6d82
같은 결과값
Company는 private을 사용하여 외부에서도 사용할 수 없고,
getInstance 만 제공되기 때문에 getInstance만 사용 가능하다.

0개의 댓글