<?php

/***
 * Class Site
 * 单例模式
 */
class Site
{
    public $siteName;
    protected static $instance = null;
    private function __construct($siteName)
    {
        $this->siteName = $siteName;
    }
    public static function getInstance($siteName='iicode')
    {
        if(!self::$instance instanceof self){
            self::$instance = new self($siteName);
        }
        return self::$instance;
    }
}

/***
 * Class Factory
 * 工厂模式
 */
class Factory
{
    public static function create($temp)
    {
       return Site::getInstance($temp);
    }
}

/***
 * Class Register
 * 注册树模式
 */
class Register
{
    protected static $objects = [];
    public static function set($alias,$object)
    {
        self::$objects[$alias] = $object;
    }

    public static function get($alias)
    {
        return self::$objects[$alias];
    }

    public static function _unset($alias)
    {
        unset(slef::$objects[$alias]);
    }
}

//Site类通过Factory注册到对象池
Register::set('site',Factory::create('Hello'));
//通过对象池访问
$obj = Register::get('site');
echo $obj->siteName;
最后修改:2023 年 12 月 05 日
如果觉得我的文章对你有用,请随意赞赏