Dcloud课程7 单例模式一般用在什么场景
一、总结
一句话总结:连接数据库,这样就保证了和数据之间只有一个连接,从而能够不占用多余资源,这样就极大的减少了资源浪费,减少了mysql或者说服务器压力
1、单例模式的思路是怎样的?
如果有实例,就拿实例,没有就创建实例,不允许外部创建实例
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 }
2、php函数默认参数用false好还是用null好?
其实都可以,感觉用null要好,语义,判断是否用false,参数是数据的话就是null
3、静态缓存数据技术中为什么会用到定时任务?
定时把数据的数据弄到缓存中,也就是静态文件中,这样就可以保证用户一直在文件中读取最新数据,而不用连接数据库。
二、单例模式一般用在什么场景
1、相关知识
单例模式的基本原则
1)构造函数需要标记为非public(防止外部使
用new操作符创建对象),单例类不能在其他类中实
例化,只能被其自身实例化。
2)拥有一个保存类的实例的静态成员变量
$_instance。
3)拥有一个访问这个实例的公告的静态方法
首页接口开发方法
1)读取数据库方式开发首页接口
2)读取缓存方式开发首页接口
优势:减少数据库压力
3)定时的读取缓存方式开发首页接口
首页接口的流程
2、代码
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 ?>