php设计模式之二__单例模式

来源:互联网 发布:一键加群好友软件 编辑:程序博客网 时间:2024/05/17 03:48

单例模式(职责模式/单态模式)

1. 特点:

在程序中创建一个单一功能的访问点,即实例化出的对象是唯一的,常用于数据库的连接对象,windows的任务管理器,回收站,应用程序的日志,网站的计数器(实现同步)等。

2. 关键要素(三私一公)

1> 私有化构造函数,__clone函数,实际操作对象(eg:数据库操作对象);

2>公开静态成员方法(创建类的对象)

3. 类的结构图

4. 代码实现

class Single {    //声明一个私有的实例变量    private $name;    //声明一个静态变量(保存在类中唯一的一个实例)    public static $instance;    //声明私有构造方法为了防止外部代码使用new来创建对象。    private function __construct(){    }    //防止通过对象克隆的方式产生对象    private function __clone(){    }    //声明一个getinstance()静态方法,用于检测是否有实例对象    public static function getinstance(){        if(!(self::$instance instanceof self)) self::$instance = new self();        return self::$instance;    }    public function setname($n){         $this->name = $n;     }    public function getname(){         return $this->name;     }}//test case$oa = Single::getinstance();$ob = Single::getinstance();// $ob = clone $oa;$oa->setname('hello world');$ob->setname('good morning');echo $oa->getname();//good morningecho $ob->getname();//good morning

 

1 0
原创粉丝点击