PHP單例模式和工廠模式

2021-09-25 07:22:56 字數 976 閱讀 8014

單例模式又稱為職責模式,它用來在程式中建立乙個單一功能的訪問點,通俗地說就是例項化出來的物件是唯一的。

所有的單例模式至少擁有以下三種公共元素:

1. 它們必須擁有乙個建構函式,並且必須被標記為private

2. 它們擁有乙個儲存類的例項的靜態成員變數

3. 它們擁有乙個訪問這個例項的公共的靜態方法

單例類不能再其它類中直接例項化,只能被其自身例項化。它不會建立例項副本,而是會向單例類內部儲存的例項返回乙個引用。

class single

public function getname()

$oa = single::getinstance();

$ob = single::getinstance();

$oa->setname('hello world');

$ob->setname('good morning');

echo $oa->getname();//good morning

echo $ob->getname();//good morning

工廠模式就是一種類,具有為您建立物件的某些方法,這樣就可以使用工廠類建立物件,而不直接使用new。這樣如果想更改建立的物件型別,只需更改該工廠即可。

class factory

class c implements fetchname

class b implements fetchname

class d implements fetchname

$o = factory::fac(6);//呼叫工廠類中的方法

if($o instanceof fetchname){

echo  $o->getname();//ddddd

$p=factory::fac(3);

echo $p->getname();//ccccc

php單例模式和工廠模式

單例模式 1.概念 保證系統中,應用該模式的乙個類只有乙個例項。即乙個類只有乙個物件例項 節省例項化物件時間以及占用的空間 2.三私一公 私有的構造方法 私有的轉殖方法 私有的靜態屬性 公有的靜態方法 對外提供獲取例項的方法 3.適用場景 經常使用在一些連線場景 mysql,redis等連線 4.編...

php 單例模式和工廠模式

header content type text html charset utf 8 定義字元編碼,防止亂碼 單例類 class single private function clone 定義乙個空方法防止被外部轉殖 public static function getinstance 定義乙個...

PHP單例模式,工廠模式

單例模式確保某個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。三私一公 三私一公 class single 私有的轉殖 private function clone 公有的獲取例項的方法 public static function getinstance return self inst...