前言:
什么是设计模式?
模式是特定环境下同类问题的一种解决方案。 <<设计模式:可复用面向对象软件的基础>>
概念:
设计模式(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里定义一个静态方法,通过访问这个静态方法来实例化类,这样就可以全局访问这个类里的属性和方法了,并向整个系统提供这个类。