PHP经典设计模式

Posted SamC

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP经典设计模式相关的知识,希望对你有一定的参考价值。

<?php
/**
* 单例模式
*/
class Site
{
public $siteName;
//静态实例
protected static $instance=null;
//禁用构造器
private function __construct($siteName)
{
$this->siteName=$siteName;
}
//获取本例唯一实例
public static function getInstance($siteName=‘微语录‘)
{
if(!self::$instance instanceof self){
self::$instance = new self($siteName);
}
return self::$instance;
}
}
 
/**
* 用工厂模式生成单一实例
*/
class Factory
{
public static function create($iteam=‘www.top789.cn‘)
{
return Site::getInstance($iteam);
}
}
 
/**
* 对象注册树
* 1. 注册set()把对象挂上树
* 2. 获取get()把对象取下来
* 3. 注销_unset()把对象吃掉
*/
class Register
{
protected static $objects=[];
public static function set($key,$object)
{
self::$objects[$key]=$object;
}
public static function get($key)
{
return self::$objects[$key];
}
public static function _unset($key)
{
unset(self::$objects[$key]);
}
}
 
//使用
Register::set(‘sitetemp‘,Factory::create(‘测试‘));
$obj=Register::get(‘sitetemp‘);
var_dump($obj);
echo $obj->siteName;

 

以上是关于PHP经典设计模式的主要内容,如果未能解决你的问题,请参考以下文章

PHP经典设计模式--单例模式 pfinal

详解 PHP 中的三大经典模式

php程序设计经典300例,第21-25例

php程序设计经典300例,第1-10例

php设计模式

浅谈PHP面向对象编程(九设计模式)