public class Company {
// static으로 단일 인스턴스 생성
private static Company instance;
// private 생성자: 외부에서 객체 생성 불가
private Company() {}
// 인스턴스 반환 메서드
public static Company getInstance() {
if (instance == null) { // 처음 호출 시 인스턴스 생성
instance = new Company();
}
return instance; // 이후 호출 시 기존 인스턴스 반환
}
// 예제 메서드
public void showInfo() {
System.out.println("이 객체는 유일한 회사 인스턴스입니다.");
}
}
public class Main {
public static void main(String[] args) {
// 회사 객체 가져오기
Company company1 = Company.getInstance();
Company company2 = Company.getInstance();
// 두 객체가 같은지 확인
System.out.println(company1 == company2); // 출력: true
// 메서드 호출
company1.showInfo(); // 출력: 이 객체는 유일한 회사 인스턴스입니다.
}
}
Company 클래스는 회사 객체를 하나만 생성하도록 보장.getInstance()를 호출할 때 항상 동일한 객체를 반환.싱글톤 패턴에서 객체를 하나만 생성하는 이유는 다음과 같이 현실적인 문제와 효율성을 해결하기 위해서이다.
싱글톤 객체를 통해 코드 어디서든 동일한 객체에 접근할 수 있다.
예: 로깅 시스템, 설정 관리 클래스, 프린터 스풀러 등.
Logger logger = Logger.getInstance();
logger.log("Application started");
객체를 하나로 제한함으로써 프로그램의 안정성과 효율성을 높일 수 있다.