Rumah > pembangunan bahagian belakang > tutorial php > php设计模式:浅谈php单例模式(附代码)

php设计模式:浅谈php单例模式(附代码)

不言
Lepaskan: 2023-04-03 15:58:01
asal
2759 orang telah melayarinya

什么是设计模式? 模式是特定环境下同类问题的一种解决方案,可复用面向对象软件的基础,php设计模式其实有很多种,那么,今天在这里我给大家说一说php实现一个单例模式。

概念:

设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

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
Salin selepas log masuk

总结
通过定义一个类,定义一个私有的构造函数,这样外界无法通过实例化访问这个类的属性和方法,然后在class里定义一个静态方法,通过访问这个静态方法来实例化类,这样就可以全局访问这个类里的属性和方法了,并向整个系统提供这个类。

相关文章推荐:

PHP单例模式是什么 php实现单例模式的方法,php模式

PHP设计模式单例模式

php设计模式之单例模式代码,php设计模式

Atas ialah kandungan terperinci php设计模式:浅谈php单例模式(附代码). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan