<?php
/*
*单例模式
*工厂模式
*注册树模式
*/
//单例模式
class Site
{
//属性
public $siteName;
//本类的静态实例
protected static $instance = null;
//禁用构造器
private function __construct($siteName)
{
$this->siteName = $siteName;
}
//获取本类唯一实例
public static function getInstance($siteName = 'PHP中文网')
{
if (!self::$instance instanceof self) { //判断当前$instance属性是否为当前类的实例
self::$instance = new self($siteName); //实例化当前类赋值给$instance
}
return self::$instance; //返回当前类的实例
}
}
//用工厂模式来生成本类的单一实例
class Factory
{
public static function create()
{
return Site::getInstance('www.php.cn');
}
}
//对象注册树
/*
* class Register
*1.注册:set(),把对象挂到树上
*2.获取:get(),把对象取下来用
*3.注销:_unset(),把对象吃掉
*/
class Register
{
//创建对象池:数组
protected static $objects = [];
//生成对象并上树
public static function set($alias, $obj
TP5.1准备之PHP经典设计模式
最新推荐文章于 2022-07-22 16:02:22 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)