1.設(shè)計并實現(xiàn)單例模式
要求:
①單例類只能有一個實例
②這個實例只能由單例類來生成
③必須給所有其他對象提供這個實例
目的:①節(jié)省內(nèi)存空間
namespace Single;
class Single {
????? static?? private? $instance; //定義一個靜態(tài)變量存儲實例
????? private function __construct(){} //構(gòu)造函數(shù)必須定義為私有
????? static function getInstance(){?? //調(diào)用靜態(tài)方法獲取唯一實例
???? ? ? ? ?? if (!isset(self::$instance)) {
??????????????????? self::$instance = new Single;
???? ? ? ? ? ? }
??????? ? ? ?? return? self::$instance;
????? }
}
$example_1 = \Single\Single::getInstance();
$example_2 = \Single\Single::getInstance();
var_dump($example_1 === $example_2);?? // bool (true)
2.工廠模式
原理:實例化一個類不使用new 而是在另一個類的方法里進行實例化
好處:①拓展性好? ②類名變更不用更改已有代碼 ③可以根據(jù)函數(shù)值實例化不用的類對象