工厂模式是一种类,建立了一个工厂来根据所需来创建对象,这种方式在多态性编程中是很重要的,允许动态替换...
工厂模式是一种类,建立了一个工厂来根据所需来创建对象,这种方式在多态性编程中是很重要的,允许动态替换类,修改配置等。

<?php
// 单例模式
class Site{
// 属性
public $site;
// 本类的静态实例
public static $instance = null;
// 禁用构造函数
private function __construct(){}
// 获取本类的唯一实例
public static function getInstance($site='demo'){
if(!self::$instance instanceof self){
self::$instance = new self();
}
return self::$instance;
}
public function A($n='demo'){
return $n;
}
}
// 工厂模式
class Factory{
// 创建指定类的实例
public static function create($name){
return $name::getInstance();
}
}
// 对象注册树
// 1.注册:set(),把对象挂到树上
// 2.获取:get(),把对象取下来
// 3.销毁:_unset(),把对象销毁
class Register{
// 对象池属性
public static $objs = [];
// 生成对象并上树
public static function set($alias,$obj){
self::$objs[$alias] = $obj;
}
// 取下对象
public static function get($alias){
return self::$objs[$alias];
}
//
public static function _unset($alias){
unset(self::$objs[$alias]);
}
}
Register::set('site',Factory::create('Site'));
$obj = Register::get('site');
var_dump($obj->A('1234'));
漠漠睡