一、工厂模式
工厂方法或者类生成对象,而不是在代码中直接new
优点:生成的对象如果需要变化,只需要在类里面进行修改。避免多个地方生成对象,都需要对生成对象的参数修改。
核心代码:
<?php
namespace TT
class Factory{
function createDataBase()
{
$db = new Database;
return $db;
}
}
啥意思我也懒得解释。
二、单例模式
使一个类只能实例化一次。
优点:避免多次实例化造成对资源的浪费。
核心代码:
<?php
namespace TT
class Database
{
protected $db;
// 构造方法私有化,不让类文件以外的地方去实例化
private function __construct()
{
}
static function getInstance()
{
if(self::$db) {
return self::$db;
} else {
self::$db = new self();
return self::$db;
}
}
}
三、注册器模式
全局共享和交换对象
优点:将对象注册到全局的树上,使用的时候,可以直接获取。
核心代码:
<?php
namespace TT
class Register()
{
protected static $objects;
function set($alias, $object)
{
self::$objects[$alias] = $object;
}
function _unset($alias)
{
unset(self::$objects[$alias]);
}
function get($alias)
{
return self::$objects[$alias];
}
}