單例模式是指整個應用中類別只有一個物件實例的設計模式。
一個類別在整個應用中只有一個實例
類必須自行創建這個實例
例㟀
我用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(); //把构造函数变为私有 //做了一个方法来间接造对象 //在该方法里面加限制工廠類 是指包含一個專門用其他專門用來創建其他物件的方法的類別,工廠類別性程式實踐中是至關重要的,它允許動態的替換類,修改配置,通常會使應用程式更加靈活,熟練工廠模式高級PHP開發人員是很重要的。 工廠模式通常用來返回符合類似介面的不同的類,工廠的一種常見用法就是創建多態的提供者,從而允許我們基於應用程式邏輯或配置設定來決定應實例化哪一個類,例如,可以使用這樣的提供者來擴展一個類,而不需要重構應用程式的其他部分,從而使用新的擴充後的名稱。 通常,工廠模式有一個關鍵的構造,根據一般原則命名為Factory的靜態方法,然而這只是一種原則,工廠方法可以任意命名,這個靜態還可以接受任意資料的參數,必須傳回一個物件。
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("+");更多PHP中單例模式與工廠模式相關文章請關注PHP中文網!