Singleton 單例模式

2022-08-16 02:15:15 字數 1399 閱讀 7026

單例模式是最常見的模式之一,在web應用的開發中,常常用於允許在執行時為某個特定的類建立乙個可訪問的例項。

<?php

/** * singleton class

*/final class product

return self::$instance;

}private function __construct()

private function __clone() }

$firstproduct = product::getinstance();

$secondproduct = product::getinstance();

$firstproduct->mix = 'test';

$secondproduct->mix = 'example';

print_r($firstproduct->mix);

// example

print_r($secondproduct->mix);

在很多情況下,需要為系統中的多個類建立單例的構造方式,這樣,可以建立乙個通用的抽象父工廠方法:

<?php

abstract class factoryabstract

return self::$instances[$classname];

}public static function removeinstance()

}final protected static function getclassname()

protected function __construct()

final protected function __clone() }

abstract class factory extends factoryabstract

final public static function removeinstance()

}// using:

class firstproduct extends factory

class secondproduct extends firstproduct

firstproduct::getinstance()->a = 1;

secondproduct::getinstance()->a = 2;

firstproduct::getinstance()->a = 3;

secondproduct::getinstance()->a = 4;

print_r(firstproduct::getinstance()->a);

// array(1, 3)

print_r(secondproduct::getinstance()->a);

// array(2, 4)

Singleton 單例 模式

singleton 模式的宗旨在於確保某個類只有乙個例項,別且為之提供乙個全域性訪問點。為了防止其他工作人員例項化我們的類,可以為該類建立唯一乙個構造器,並將構造器的可見 設定為私有。值得注意的是,如果我們建立了其他的非私有的構造器,或者根本沒有為該類提 供構造器,那麼其他人員還是能例項化我們的類。...

Singleton 單例 模式

今天看了,單例模式。感覺他的本質就是,控制類例項的個數。特例就是,控制static變數的唯一性,保證各個程式共享著同一例項。乙個例子 package singleton description 這是乙個單例模式的使用demo author kyle goal 實現乙個類僅有乙個例項 singleto...

單例(Singleton)模式

單例模式的特點 singleton模式包含的角色只有乙個,那就是singleton。singleton擁有乙個私有建構函式,確保使用者無法通過new取得singleton的例項。除此之外,該模式中包含乙個靜態私有成員變數instance與靜態公有方法instance。instance方法負責檢驗並例...