單例模式是指整個應用中類別只有一個物件實例的設計模式。
一個類別在整個應用中只有一個實例
類必須自行創建這個實例
例㟀
我用php大部分操作都是和各種資料庫打交道,包括mysql,redis,memcache等各種關係型和非關係型資料庫,所以一個應用中會存在大量連接資料庫的操作,如果不用單例模式,那每次都要new操作,但是每次new都會消耗大量的記憶體資源和系統資源,而且每次開啟和關閉資料庫連線都是對資料庫的極大考驗和浪費。 需要一個保存類別的唯一實例的靜態成員變數(通常$instance為私有變數)
必須提供一個存取這個實例的公共靜態方法,從而傳回唯一實例的一個引用
//设计模式 //单例模式 都是使用同一个对象 //class Ren //{ // public $name; // private static $dx; //存储对象 // // private function __construct() // { // // } // // public static function DuiXiang() // { // if(empty(self::$dx)) // { // self:;$dx=new Ren(); // } // return self::$dx; // } //} // //$r= Ren::DuiXiang(); //把构造函数变为私有 //做了一个方法来间接造对象 //在该方法里面加限制
class YunSuan { public $a; public $b; function Suan() { echo "对两个数进行运算"; }
class gongchang { //功能 : 给一个参数,返回一个对象 static function chanpin($name) { switch($name) { case "'+": return new jia(); break; case "-"; return new jian(); break; } } } $a=gongchang::chanpin("+");