亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

PHP經(jīng)典面試題之設(shè)計(jì)模式(經(jīng)常遇到)

 更新時間:2015年10月15日 14:50:57   投稿:mrr  
php中設(shè)計(jì)模式非常多,但是設(shè)計(jì)模式在php面試題經(jīng)常會提到,本文主要給大家介紹php經(jīng)典面試題之設(shè)計(jì)模式,需要的朋友一起看看吧

設(shè)計(jì)模式在面試過程中經(jīng)常會提到,有時候還會讓我們舉例說明各種設(shè)計(jì)模式的應(yīng)用場景。

使用設(shè)計(jì)模式可以減輕我們的工作量,優(yōu)化我們的代碼。

設(shè)計(jì)模式非常的多,這里介紹單例模式,工廠模式,組合模式,策略模式4種模式

如果有代碼有什么問題或者有更好的方式請告知,謝謝!!!!!

/**
 * 單例模式
 * @author YangYang <1812271619@qq.com>
 * 可以想成在一次http請求中只產(chǎn)生該類的一個對象(即只new classname一次)
 * 經(jīng)典的例子是數(shù)據(jù)庫連接(redis,mongodb,memcache等)
 * 在一次http請求中我們可能需要對數(shù)據(jù)庫做增刪改查多條sql操作
 * 但是如果一次http請求中每執(zhí)行一條sql我們就mysql_connect(),很明顯會導(dǎo)致服務(wù)器資源的浪費(fèi)
 * 為了節(jié)約資源,就可以通過單例模式來實(shí)現(xiàn)一次http請求只做一次mysql_connect()
 * 即將mysql_connect()放在類方法的__construct中,并將__construct方法做成私有,
 * 這樣只能通過getInstance()方法來獲得mysql_connect()的資源連接符
 * getInstance()方法中判斷是否已經(jīng)存在myql連接符,如果存在就直接返回該連接符
 * 否則new classname()即調(diào)用了__construct方法執(zhí)行了mysql_connect()得到了資源連接符,并返回連接符
 * 因?yàn)楝F(xiàn)在PHP已不再建議直接使用mysql函數(shù)進(jìn)行數(shù)據(jù)庫操作,而是建議通過PDO進(jìn)行數(shù)據(jù)庫操作,所以這里寫一個簡易PDO連接的單例模式
 * 這里只是講解單例原理,數(shù)據(jù)庫的防sql注入等問題不做考慮
 * 準(zhǔn)備工作 數(shù)據(jù)庫:test 數(shù)據(jù)表:user 字段:id name 記錄:1 CodeAnti
 * 最終運(yùn)行結(jié)果: 數(shù)據(jù)表user中id=1這條記錄被刪除
 */
class SinglePDO
{
    private static $_instance = null;
    private $_pdo;
    //私有,防止外部直接實(shí)例化new SinglePDO(...)
    private function __construct($dsn,$dbUser,$dbPassword)
    {
        try{
            $this->_pdo = new PDO($dsn,$dbUser,$dbPassword);
            $this->_pdo->exec('set names utf8');
        }catch(PDOException $e){
            die("Error:{$e->getMessage()}");
        }
    }
    //私有,防止克隆
    private function __clone(){}
    //獲取連接實(shí)例
    public static function getInstance($dsn,$dbUser,$dbPassword)
    {
        if(self::$_instance === null)
            self::$_instance = new self($dsn,$dbUser,$dbPassword);
        return self::$_instance;
    }
    //執(zhí)行sql
    public function execSql($sql)
    {
        $result = $this->_pdo->exec($sql);
        return $result;
    }
}

$dsn = "mysql:host=localhost;dbname=test";
$dbUser = "root";
$dbPassword = "";
$sql = "delete from user where id = 1";
$pdo = SinglePDO::getInstance($dsn,$dbUser,$dbPassword);
$result = $pdo->execSql($sql); //$pdo->execSql($sql)多次調(diào)用,但仍然是同一個pdo對象
print_r($result);

相關(guān)文章

  • jQuery Mobile + PHP實(shí)現(xiàn)文件上傳

    jQuery Mobile + PHP實(shí)現(xiàn)文件上傳

    這篇文章主要介紹了jQuery Mobile + PHP實(shí)現(xiàn)文件上傳的方法實(shí)例,以及由于自己疏忽造成的問題的解決方法,這里推薦給大家,有需要的小伙伴參考下
    2014-12-12
  • Laravel學(xué)習(xí)教程之廣播模塊詳解

    Laravel學(xué)習(xí)教程之廣播模塊詳解

    這篇文章主要給大家介紹了關(guān)于Laravel學(xué)習(xí)教程之廣播模塊的相關(guān)資料,廣播是指發(fā)送方發(fā)送一條消息,訂閱頻道的各個接收方都能及時收到消息,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-08-08
  • Yii2框架實(shí)現(xiàn)利用mpdf創(chuàng)建pdf文件功能示例

    Yii2框架實(shí)現(xiàn)利用mpdf創(chuàng)建pdf文件功能示例

    這篇文章主要介紹了Yii2框架實(shí)現(xiàn)利用mpdf創(chuàng)建pdf文件功能,結(jié)合實(shí)例形式分析了mpdf的下載、安裝及結(jié)合Yii2框架創(chuàng)建pdf文件的相關(guān)操作技巧,需要的朋友可以參考下
    2019-02-02
  • php5.3以后的版本連接sqlserver2000的方法

    php5.3以后的版本連接sqlserver2000的方法

    這篇文章主要介紹了php5.3以后的版本連接sqlserver2000的方法,包括php5.4、php5.5等版本的通用解決方法,需要的朋友可以參考下
    2014-07-07
  • thinkphp5 加載靜態(tài)資源路徑與常量的方法

    thinkphp5 加載靜態(tài)資源路徑與常量的方法

    這篇文章主要介紹了thinkphp5 加載靜態(tài)資源路徑與常量的方法的相關(guān)資料,需要的朋友可以參考下
    2017-12-12
  • Laravel5.1 框架模型一對一關(guān)系實(shí)現(xiàn)與使用方法實(shí)例分析

    Laravel5.1 框架模型一對一關(guān)系實(shí)現(xiàn)與使用方法實(shí)例分析

    這篇文章主要介紹了Laravel5.1 框架模型一對一關(guān)系實(shí)現(xiàn)與使用方法,結(jié)合實(shí)例形式分析了laravel5.1框架模型一對一關(guān)系的原理、定義與使用方法,需要的朋友可以參考下
    2020-01-01
  • PHPMYADMIN導(dǎo)入數(shù)據(jù)最大為2M的解決方法

    PHPMYADMIN導(dǎo)入數(shù)據(jù)最大為2M的解決方法

    PHPMYADMIN還原數(shù)據(jù)庫的時候上傳的最大限制:2,048 KB,數(shù)據(jù)庫稍微大一些就無法處理,要么使用其他的備份還原工具如帝國備份王,要么就分卷導(dǎo)出,那么有沒有辦法還使用PHPMYADMIN來處理呢
    2012-04-04
  • php 偽靜態(tài)之IIS篇

    php 偽靜態(tài)之IIS篇

    上篇文章我們講解了APACHE服務(wù)器下偽靜態(tài)的實(shí)現(xiàn),不過在國內(nèi)還是IIS的服務(wù)器要多些,特別是個人站長,那么,我們再來學(xué)習(xí)下IIS下php偽靜態(tài)的實(shí)現(xiàn)過程吧
    2014-06-06
  • PHP文件及文件夾操作之創(chuàng)建、刪除、移動、復(fù)制

    PHP文件及文件夾操作之創(chuàng)建、刪除、移動、復(fù)制

    這篇文章主要介紹了PHP文件及文件夾操作之創(chuàng)建、刪除、移動、復(fù)制的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • 純php打造的tab選項(xiàng)卡效果代碼(不用js)

    純php打造的tab選項(xiàng)卡效果代碼(不用js)

    用php實(shí)現(xiàn)的tab選項(xiàng)卡效果,根據(jù)get判斷,獲取get生成css與對應(yīng)的內(nèi)容,當(dāng)然效率肯定沒有靜態(tài)的好,這里給出的思路與方法。
    2010-12-12

最新評論