PHpullh
학습 라이브러리/PHP/private 생성자 싱글톤 스타일

PHP · 객체지향

private 생성자 싱글톤 스타일

완전한 싱글톤을 권장한다기보다 private 생성자와 지연 초기화 패턴을 이해하기 위한 예제입니다.

객체지향중급singletonlazyprivate-constructor

핵심 설명

완전한 싱글톤을 권장한다기보다 private 생성자와 지연 초기화 패턴을 이해하기 위한 예제입니다.

PHP code

<?php
class Config {
    private static ?self $instance = null;
    private function __construct(public array $values) {}

    public static function instance(): self {
        return self::$instance ??= new self(['env' => 'local']);
    }
}

echo Config::instance()->values['env'];

학습 팁

클래스 예제는 생성자, 가시성, 협력 객체의 책임을 함께 보면 실무 감각이 빨리 붙습니다.

주의할 점

가시성, final, readonly 제약을 무시하면 객체 설계가 금방 흐트러집니다.

자주 묻는 질문

private 생성자 싱글톤 스타일란 무엇인가요?

완전한 싱글톤을 권장한다기보다 private 생성자와 지연 초기화 패턴을 이해하기 위한 예제입니다.

private 생성자 싱글톤 스타일 학습 시 주의할 점은 무엇인가요?

가시성, final, readonly 제약을 무시하면 객체 설계가 금방 흐트러집니다.