1:工厂模式:使用工厂方法或者类去生成对象,而不是在代码中直接new,很多其它设计模式都依赖与工厂模式
<?php
class Factory{
//工厂方法
public static function CreateDb()
{
return new Databases();//实例化
}
public function getName()
{
return "Jack";
}
}
$newModel = UserFactory::CreateDb();
echo( $newModel->getName()."\n" );
2:单例模式:使某个类的对象仅允许创建一次
<?php
class Database
{
static private $db;
//构造方法采用 私有控制private 可以避免在外部使用new来实例化这个对象
private function __construct()
{
}
//实例化自己
static function getInstance()
{
if (empty(self::$db)) {
self::$db = new self;
return self::$db;
} else {
return self::$db;
}
}
}
$db = Database::getInstance();
3:注册树模式:全局共享和交换对象
<?php
class Register
{
protected static $objects;
static function set($alias, $object)
{
self::$objects[$alias] = $object;
}
static function get($key)
{
if (!isset(self::$objects[$key]))
{
return false;
}
return self::$objects[$key];
}
function _unset($alias)
{
unset(self::$objects[$alias]);
}
}
Register::set('rand',RandFactory::factory());//扔到树上
$object=Register::get('rand');//从树上拿下来