[php] 싱글턴 디자인 패턴
싱글턴 디자인 패턴은 객체 생성에 관한 디자인 패턴 중 하나로, 애플리케이션에서 특정 클래스의 인스턴스가 하나만 생성되도록 보장하는 패턴입니다. 이 패턴은 객체를 전역으로 접근 가능하게 만들어주며, 한 번의 객체 생성으로 어디서든 이를 공유할 수 있도록 합니다.
언제 사용해야 할까요?
- 커다란 객체 생성: 객체 생성에 상당한 비용이 들 경우, 이를 반복해서 생성하는 것을 피하기 위해 사용할 수 있습니다.
- 인스턴스를 공유해야 하는 경우: 단 하나의 인스턴스를 모든 클라이언트에게 공유해야 하는 경우에 사용할 수 있습니다.
싱글턴은 다음과 같이 구현될 수 있습니다:
<?php
class Singleton
{
private static $instance;
private function __construct() {}
public static function getInstance()
{
if (self::$instance === null) {
self::$instance = new Singleton();
}
return self::$instance;
}
}
위의 코드에서 getInstance
메서드가 핵심입니다. 이 메서드는 이미 인스턴스가 존재하는지 체크한 뒤, 없다면 새로운 인스턴스를 생성합니다.
싱글턴 디자인 패턴은 잘못 사용할 경우 테스트에 어려움을 야기하기도 하며, 상태를 공유하는 것으로 인해 문제를 발생시킬 수 있습니다. 따라서 싱글턴을 사용할 때에는 신중하게 고려해야 합니다.
참고 자료: