1、工厂模式

<?php
namespace Facebab;
class Factory {
static function createDatabase () {
return new Database();
}

}

$db = Facebab\Factory::createDatabase();
$db->fetchOne();

2、单例模式

<?php
namespace Facebab;
class Singleton {

private static $db = null;
private __construct() {

}

static function getInstance() {

if (self::$db != null) {
return self::$db;
} else {
self::$db = new self();
return self::$db;
}

}

private __clone() {

}
}

3、注册模式

 

<?php
namespace Facebab;
class Register {

private static $objects = array();

static function set($alias,$object) {
self::$objects[$alias] = $object;
}

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

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

Register::set('db1',$db);
$db = Facebab\Register::get('db1');