> 백엔드 개발 > PHP 튜토리얼 > 싱글턴 패턴이란?

싱글턴 패턴이란?

藏色散人
풀어 주다: 2023-04-05 20:36:02
앞으로
4988명이 탐색했습니다.



싱글턴 패턴은 일반적으로 사용되는 소프트웨어 디자인 패턴입니다. 핵심 구조에는 싱글톤 클래스라는 특수 클래스가 하나만 포함되어 있습니다. 싱글톤 모드는 시스템에 클래스의 인스턴스가 하나만 있고 해당 인스턴스에 외부 세계에서 쉽게 액세스할 수 있도록 보장하여 인스턴스 수를 쉽게 제어하고 시스템 리소스를 절약할 수 있습니다. 특정 클래스의 객체 하나만 시스템에 존재하도록 하려면 싱글톤 패턴이 가장 좋은 솔루션입니다.

클래스에 인스턴스가 하나만 있고 이 인스턴스에 쉽게 액세스할 수 있도록 하려면 어떻게 해야 합니까? 전역 변수를 정의하면 언제든지 개체에 액세스할 수 있지만 여러 개체를 인스턴스화하는 데 방해가 되는 것은 아닙니다. 더 나은 해결책은 클래스 자체가 유일한 인스턴스를 저장하도록 만드는 것입니다. 이 클래스는 다른 인스턴스가 생성되지 않도록 보장하고 인스턴스에 액세스하는 방법을 제공합니다. 이것이 싱글톤 패턴의 패턴 동기입니다.

예를 들어, PHP 개발 과정에서 db 클래스(데이터베이스 작업 클래스)를 만든 다음 PHP 파일의 데이터베이스는 한 번만 연결할 수 있고 PHP 파일에는 하나의 데이터베이스 개체만 필요하기를 바랍니다! 데이터베이스에 여러 번 연결하면 PHP의 실행 효율성이 크게 떨어지기 때문입니다. 이는 또한 엄청난 시스템 오버헤드를 가져올 것입니다!

싱글턴 모드를 사용하여 데이터베이스 캡슐화

<?php
class db
{
//使用一个静态变量记录db对象初始化时为null
public static $db = null;
/* 私有构造函数是类无法完成外部的调用
* 意味着您将无法使用 $xx = new db();
*/
private function __construct(){
echo &#39;连接数据库....&#39;;
}
/* 
* 使用静态方法去获取数据对象
* 获取时先判断db对象是否已经存在,如果存在则直接返回db对象反正则创建这个对象
*/
public static function getInstance(){
if(self::$db == null){
self::$db = new db();
}
return self::$db;
}
public function query($sql){
echo &#39;执行sql命令&#39;;
}
public function __destruct(){
echo &#39;关闭数据库连接....&#39;;
}
}
$db = db::getInstance();
$db1 = db::getInstance();
$db->query(&#39;test&#39;);
$db2 = db::getInstance();
//输出 : 连接数据库....执行sql命令关闭数据库连接....
로그인 후 복사

//DB 객체를 몇 번이나 획득하더라도 이름은 다르지만 모두 동일한 객체를 나타냄을 알 수 있습니다! 이것은 싱글톤 패턴을 구현합니다!



위 내용은 싱글턴 패턴이란?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:hcoder.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿