PHP工廠模式、單例模式與注冊樹模式實例詳解
本文實例講述了PHP工廠模式、單例模式與注冊樹模式。分享給大家供大家參考,具體如下:
三種基本設(shè)計模式
1、工廠模式:工廠方法或者類生成對象,而不是在代碼中直接new
2、單例模式:使某個類的對象僅允許創(chuàng)建一個
3、注冊模式:全局共享和交換對象
工廠模式:
<?php
namespace IMooc;
class Factory
{
static function createDatabase()
{
$db = new Database();
return $db;
}
}
$db = IMooc\Factory::createDatabase();
工廠模式的好處是,避免Database這個類,在很多個php文件都進行new操作,如果Database這個類發(fā)生了一些變更(修改了名字或者參數(shù)),那這時候如果不工廠模就需要修改多出了,使用工廠模式,就只需要修改工廠方法即可。
單例模式:
<?php
namespace IMooc;
class Database
{
protected $db;
private function __construct()
{
}
// 獲取數(shù)據(jù)庫操作實例
static function getInstance()
{
if(self::$db){
return self::$db;
}else{
self::$db = new self();
return self::$db;
}
}
}
// 無論調(diào)用多少次,只會創(chuàng)建一個實例
$db = IMooc\Database::getInstance();
$db = IMooc\Database::getInstance();
$db = IMooc\Database::getInstance();
$db = IMooc\Database::getInstance();
注冊樹模式:
<?php
namespace IMooc;
class Register
{
protected static $objects;
static function set($alias, $object)
{
self::$objects[$alias] = $object;
}
static function get($name)
{
return self::$objects[$name];
}
static function _unset($alias)
{
unset(self::$objects[$alias]);
}
}
$db = \IMooc\Register::get('db1');
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計有所幫助。
相關(guān)文章
PHP實現(xiàn)的數(shù)組和XML文件相互轉(zhuǎn)換功能示例
這篇文章主要介紹了PHP實現(xiàn)的數(shù)組和XML文件相互轉(zhuǎn)換功能,結(jié)合實例形式分析了php針對xml格式數(shù)據(jù)與數(shù)組相互轉(zhuǎn)換操作技巧,需要的朋友可以參考下2018-03-03
Windows下PHP開發(fā)環(huán)境搭建教程(Apache+PHP+MySQL)
這篇文章主要為大家詳細介紹了Windows下PHP開發(fā)環(huán)境搭建教程:Apache+PHP+MySQL,具有一定的實用性和參考價值,感興趣的小伙伴們可以參考一下2016-06-06

