>백엔드 개발 >PHP 튜토리얼 >PHP 디자인 패턴: PHP 싱글톤 패턴에 대한 간략한 논의(코드 포함)

PHP 디자인 패턴: PHP 싱글톤 패턴에 대한 간략한 논의(코드 포함)

不言
不言원래의
2018-08-04 14:45:252760검색

디자인 패턴이란 무엇인가요? 패턴은 특정 환경에서 유사한 문제를 해결하는 방법으로 재사용이 가능한 객체지향 소프트웨어의 기본이 됩니다. 실제로 많은 PHP 디자인 패턴이 있으므로 오늘은 싱글톤 패턴을 구현하는 PHP에 대해 설명하겠습니다.

개념:

디자인 패턴은 모범 사례를 나타내며 일반적으로 숙련된 객체 지향 소프트웨어 개발자가 채택합니다. 디자인 패턴은 소프트웨어 개발 과정에서 소프트웨어 개발자가 직면하는 일반적인 문제에 대한 솔루션입니다. 이러한 솔루션은 수많은 소프트웨어 개발자가 오랜 기간 동안 시행착오를 거쳐 탄생한 결과입니다.

php 싱글턴 패턴 정의
PHP 싱글톤 모드는 일반적으로 사용되는 PHP 소프트웨어 디자인 패턴입니다. 핵심 구조에는 싱글톤이라는 특수 클래스가 하나만 포함되어 있습니다. PHP 싱글톤 모드는 시스템에서 이 모드가 적용되는 클래스에 인스턴스가 하나만 있도록 보장할 수 있습니다. PHP 싱글톤 모드는 자체적으로 인스턴스화되고 이 인스턴스화된 클래스를 전체 시스템에 제공합니다.

php 싱글턴 모드 코드:

<?php
    class preferences
    {
        private $props = array();        
        private static $instance;        
        private function __construct(){}        
        public static function getInstance()
        {
            if(empty(self::$instance))
            {                
            self::$instance = new preferences();
            }            
            return self::$instance;
        }        
        public function setProperty($key,$value)
        {
            $this->props[$key] = $value;
        }        
        public function getProperty($key)
        {
            return $this->props[$key];
        }
    }    $ref = preferences::getInstance();    
    $ref->setProperty(&#39;name&#39;,&#39;ypp&#39;);    
    unset($ref);//移除引用
    //var_dump(preferences::getInstance());
    // echo $ref->getProperty(&#39;name&#39;);
    $ref2 = preferences::getInstance();//值并未丢失
    echo $ref2->getProperty(&#39;name&#39;); //这里输出ypp

요약
클래스를 정의하여 외부 세계가 인스턴스화를 통해 이 클래스의 속성과 메서드에 접근할 수 없도록 전용 생성자를 정의한 다음, 클래스에 정적 함수를 정의합니다. 클래스 메소드, 이 정적 메소드에 액세스하여 클래스를 인스턴스화하면 이 클래스의 속성과 메소드에 전역적으로 액세스할 수 있고 이 클래스를 전체 시스템에 제공할 수 있습니다.

추천 관련 기사:

PHP 싱글턴 모드란 무엇인가요? php, php 모드에서 싱글턴 모드를 구현하는 방법

PHP 디자인 패턴 싱글턴 모드

php 디자인 패턴 싱글턴 모드 코드, php 디자인 패턴

위 내용은 PHP 디자인 패턴: PHP 싱글톤 패턴에 대한 간략한 논의(코드 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.