: 클래스 인스턴스를 하나만 만들고, 그 인스턴스로의 전역 접근을 제공하는 것.
하나뿐인 클래스 인스턴스
: 다른 어떤 클래스에서도 자신의 인스턴스를 추가로 만들지 못하도록 함.
인스턴스가 필요하다면, 클래스 자신을 거치도록.
인스턴스 수 제한 이유 → 일부 공유 리소스(데이터베이스, 파일)에 대해 접근을 제어하기 위함.
클라이언트들은 항상 같은 객체와 작업하고 있다는 사실을 인식조차 못하고 있을 수 있음.
어디서든 인스턴스에 접근할 수 있는 전역 접근 지점 제공
: 언제든 인스턴스가 필요하면 클래스에 요청할 수 있으며,
요청이 들어오면 하나뿐인 인스턴스를 건네주도록.
프로그램의 모든 곳에서 접근할 수 있으나, 다른 코드가 해당 인스턴스를 덮어쓰지 못하게 함.
실제 상황 예
국가는 하나의 공식 정부만 가질 수 있음.
“~국가의 정부”라는 명칭은 정부 구성 개인과는 상관없이,
“정부 책임자들의 그룹”을 식별하는 전역 접근 지점.