PHP工廠模式、單例模式與注冊(cè)樹模式實(shí)例詳解
本文實(shí)例講述了PHP工廠模式、單例模式與注冊(cè)樹模式。分享給大家供大家參考,具體如下:
三種基本設(shè)計(jì)模式
1、工廠模式:工廠方法或者類生成對(duì)象,而不是在代碼中直接new
2、單例模式:使某個(gè)類的對(duì)象僅允許創(chuàng)建一個(gè)
3、注冊(cè)模式:全局共享和交換對(duì)象
工廠模式:
<?php
namespace IMooc;
class Factory
{
static function createDatabase()
{
$db = new Database();
return $db;
}
}
$db = IMooc\Factory::createDatabase();
工廠模式的好處是,避免Database這個(gè)類,在很多個(gè)php文件都進(jìn)行new操作,如果Database這個(gè)類發(fā)生了一些變更(修改了名字或者參數(shù)),那這時(shí)候如果不工廠模就需要修改多出了,使用工廠模式,就只需要修改工廠方法即可。
單例模式:
<?php
namespace IMooc;
class Database
{
protected $db;
private function __construct()
{
}
// 獲取數(shù)據(jù)庫操作實(shí)例
static function getInstance()
{
if(self::$db){
return self::$db;
}else{
self::$db = new self();
return self::$db;
}
}
}
// 無論調(diào)用多少次,只會(huì)創(chuàng)建一個(gè)實(shí)例
$db = IMooc\Database::getInstance();
$db = IMooc\Database::getInstance();
$db = IMooc\Database::getInstance();
$db = IMooc\Database::getInstance();
注冊(cè)樹模式:
<?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è)計(jì)入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- PHP 工廠模式使用方法
- php設(shè)計(jì)模式 Factory(工廠模式)
- PHP中“簡單工廠模式”實(shí)例代碼講解
- php基礎(chǔ)設(shè)計(jì)模式大全(注冊(cè)樹模式、工廠模式、單列模式)
- PHP實(shí)現(xiàn)單例模式最安全的做法
- php單例模式實(shí)現(xiàn)(對(duì)象只被創(chuàng)建一次)
- php利用單例模式實(shí)現(xiàn)日志處理類庫
- PHP設(shè)計(jì)模式之注冊(cè)樹模式分析
- PHP單例模式實(shí)例分析【防繼承,防克隆操作】
- PHP單例模式數(shù)據(jù)庫連接類與頁面靜態(tài)化實(shí)現(xiàn)方法
相關(guān)文章
PHP實(shí)時(shí)統(tǒng)計(jì)中文字?jǐn)?shù)和區(qū)別
今天小編就為大家分享一篇關(guān)于PHP統(tǒng)計(jì)實(shí)時(shí)統(tǒng)計(jì)漢字個(gè)數(shù)和區(qū)別,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-02-02
PHP實(shí)現(xiàn)的數(shù)組和XML文件相互轉(zhuǎn)換功能示例
這篇文章主要介紹了PHP實(shí)現(xiàn)的數(shù)組和XML文件相互轉(zhuǎn)換功能,結(jié)合實(shí)例形式分析了php針對(duì)xml格式數(shù)據(jù)與數(shù)組相互轉(zhuǎn)換操作技巧,需要的朋友可以參考下2018-03-03
PHP觀察者模式原理與簡單實(shí)現(xiàn)方法示例
這篇文章主要介紹了PHP觀察者模式原理與簡單實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了php觀察者模式的概念、原理、實(shí)現(xiàn)方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-08-08
Windows下PHP開發(fā)環(huán)境搭建教程(Apache+PHP+MySQL)
這篇文章主要為大家詳細(xì)介紹了Windows下PHP開發(fā)環(huán)境搭建教程:Apache+PHP+MySQL,具有一定的實(shí)用性和參考價(jià)值,感興趣的小伙伴們可以參考一下2016-06-06

