Bai Wu Ya 一个码农的博客

漫漫全栈路,何曾有坦途 ... This is an application developed with golang GitHub: https://github.com/ibaiwuya | Email: ibaiwuya@163.com

php常用设计模式及简单案例

0条评论 61人浏览

工厂模式

//普通方法创建对象
$db = new Mydb(); class Mydb() {
// code ...
}

//使用工厂模式
$db = Factory::createMydb();
class Factory
{
static function createMydb()
{
$db = new Mydb();
return $db;
}
}

单列模式:避免重复多次实例化一个对象,造成资源浪费

$db = Mydb::GetInstance();
class Mydb() {
private static $db;

//禁止通过外部实例化该类
private function __construct(){}

static function GetInstance()
{
if(!self::$db) {
self::$db = new self();
}
return self::$db;
}
// code ...
}

注册树模式

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]);
}
}


评论列表

  1. 加载中 ...