php常见设计模式之单例模式

前言:

什么是设计模式?
模式是特定环境下同类问题的一种解决方案。 <<设计模式:可复用面向对象软件的基础>>

概念:

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

单例模式:

一、单例模式定义
单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中应用该模式的类只有一个实例,单例模式自行实例化并且向整个系统提供这个实例化的类。

二、实例

<?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('name','ypp');
    unset($ref);//移除引用
    //var_dump(preferences::getInstance());
    // echo $ref->getProperty('name');
	$ref2 = preferences::getInstance();//值并未丢失
    echo $ref2->getProperty('name'); //这里输出ypp

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值