PHP面向对象三大经典模式,看懂thinkphp源码的基础

本文通过具体实例介绍了PHP中的三种设计模式:单例模式、工厂模式及注册树模式(容器模式)。展示了如何利用这些模式来实现对象的高效管理和使用,包括对象的创建、获取和销毁过程。
<?php

//单例模式

class Site{
	//属性
	public $siteName;
	//本类的静态实力
	protected static Sinstance = null;
	//禁用掉构造器
	private function __construct($siteName)
	{
		$this->siteName = $siteName;
	}
	//获取本类唯一实例
	public static function getInstance($siteName="php中文网")
	{
		if(!self::$instance instanceof self){
			self::$instance = new self($siteName);
		}
		return self::$instance;
	}

}


//工厂模式

class Factory{

	//创建指定类的实例

	public static function create()
	{
		return	Site::getInstance('hello world');

	}
	
	
}


//注册树模式[容器模式]

//1、注册:set()把对象放入容器
//2、获取:get()把对象从容器中取出
//3、注销:_unset():把对象销毁

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( self::$objects[$alias]);
	}

}

//把Site类的实例放入对象池

Register::set('site',Factory::create());

//从容器中获取对象

$obj=Register::get('site');

//查看对象

var_dump($obj);
echo "<hr>";
echo $obj->siteName;


?>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值