16강. 클래스와 객체2(4) - singleton 패턴

철새·2022년 2월 18일
0
  • Do it! 자바 프로그래밍 입문 온라인 강의를 수강하며 작성하였습니다.
  • Section 1. 자바의 핵심 - 객체지향 프로그래밍
  • 16강 "클래스와 객체2(3) - static 변수"
  • singleton 패턴

singleton 패턴

  • 전 시스템에 단 하나의 인스턴스만이 존재하도록 구현하는 방식이다.
  • 자바에는 글로벌 변수가 없으므로 static 변수를 사용한다.
  • 생성자를 private으로 만들고 public으로 선언된 static 메서드를 제공하여 외부에서 사용할 수 있도록 한다.
  • 여러 개의 객체가 생성되면 문제가 되는 경우나, framework에서 많이 쓰인다.
public class Company {
	//Company 객체는 현재 클래스 내부에서 단 한 개만 존재함.
	private static Company instance = new Company();
	
	//외부에서 constructor 호출을 제한
	private Company(){}
	
	//외부에서 instance 객체를 사용할 수 있게 함
	public static Company getInstance() {
		if(instance == null) {
			instance = new Company();
		}
		return instance;
	}
}

이처럼 private으로 생성자를 만들고, 객체를 class 내부에서 private static으로 선언한 후, public static 메서드를 제공하여 객체를 사용할 수 있도록 만든다.

public class CompanyTest {
	public static void main(String[] args) {
		Company c1 = Company.getInstance();
		Company c2 = new Company();	//error
	}
}

main함수가 있는 다른 class에서 Company객체를 사용하고 싶다면 new 생성자가 아닌 getInstance() 메서드를 이용하여 사용할 수 있다.

profile
효율성을 추구하며 세상을 떠도는 철새입니다.

0개의 댓글

관련 채용 정보