어플리케이션에서 하나의 객체 인스턴스를 가진다.
단점: 코트 재사용을 제한하고 유닛 테스트를 복잡하게 만드는 등 안티패턴으로도 간주한다.
ex) DB connector, Logger 등
class Singleton {
private static $instances = [];
public static function getInstance() {
$cls = static::class;
if (!isset(self::$instances[$cls])) {
self::$instances[$cls] = new static();
}
return self::$instances[$cls];
}
}
function clientCode() {
$s1 = Singleton::getInstance();
$s2 = Singleton::getInstance();
if ($s1 === $s2) {
echo "Singleton works, both variables contain the same instance.";
} else {
echo "Singleton failed, variables contain different instances.";
}
}
clientCode();
참고
728x90
반응형
'개발공부 > PHP' 카테고리의 다른 글
PHP call by reference (0) | 2024.03.02 |
---|---|
PHP 단점 - connection pool (0) | 2023.06.07 |
[공유] Clean Code PHP 한글판 (0) | 2023.05.16 |
[PHP] redis 라이브러리 - Predis 알아보기 (0) | 2022.12.30 |
[PHP] mysql_num_rows VS mysql_affected_rows (0) | 2020.04.27 |
댓글