Dcloud課程7 單例模式通常用在什麼場景

Dcloud課程7 單例模式通常用在什麼場景

1、總結

一句話總結:鏈接數據庫,這樣就保證了和數據之間只有一個鏈接,從而可以不佔用多餘資源,這樣就極大的減小了資源浪費,減小了mysql或者說服務器壓力

 

一、單例模式的思路是怎樣的?

若是有實例,就拿實例,沒有就建立實例,不容許外部建立實例php

16     public static function getInstance(){ 17 if (!self::$_instance instanceof self) { 18 # code... 19 self::$_instance=new self; 20  } 21 22 return self::$_instance; 23  }

 

二、php函數默認參數用false好仍是用null好?

其實均可以,感受用null要好,語義,判斷是否用false,參數是數據的話就是nullmysql

 

三、靜態緩存數據技術中爲何會用到定時任務?

定時把數據的數據弄到緩存中,也就是靜態文件中,這樣就能夠保證用戶一直在文件中讀取最新數據,而不用鏈接數據庫。sql

 

 

 

2、單例模式通常用在什麼場景

一、相關知識

單例模式的基本原則

1)構造函數須要標記爲非public(防止外部使
用new操做符建立對象),單例類不能在其餘類中實
例化,只能被其自身實例化。
2)擁有一個保存類的實例的靜態成員變量
$_instance。
3)擁有一個訪問這個實例的公告的靜態方法數據庫

 

首頁接口開發方法

1)讀取數據庫方式開發首頁接口緩存

2)讀取緩存方式開發首頁接口服務器

優點:減小數據庫壓力函數

3)定時的讀取緩存方式開發首頁接口fetch

 

首頁接口的流程

 

 
 
 

二、代碼

 1 <?php 
 2 
 3 class DB{
 4     const HOST='localhost';
 5     const USER='root';
 6     const PASS='123';
 7     const DATA='feifei';
 8     static public $_instance;
 9 
10     private function __construct(){
11         @mysql_connect(DB::HOST,DB::USER,DB::PASS);
12         mysql_set_charset('utf8');
13         mysql_select_db(DB::DATA);
14     }
15 
16     public static function getInstance(){
17         if (!self::$_instance instanceof self) {
18             # code...
19             self::$_instance=new self;
20         }
21         
22         return self::$_instance;
23     }
24 }
25 
26 // $model=new DB();
27 
28 // $model=DB::getInstance();
29 
30 // $sql="select * from user";
31 // $res=mysql_query($sql);
32 // while ($row=mysql_fetch_assoc($res)) {
33 //     # code...
34 //     var_dump($row);
35 // }
36 
37 
38 
39 
40  ?>
相關文章
相關標籤/搜索