单态模式
<?php//不使用final,允許繼承
class cheat
{//快速建造的生效狀態,用private保護,同時設置static讓所有的作弊對象共享private static $fastBuild = false;//設置快速建造的生效狀態的方法,用public為了能夠公開調用public function setStatus($input){//如果輸入的秘籍正確,operation cwal是快速建造的秘籍if($input === 'operation cwal'){//像開關一樣,逆反狀態self::$fastBuild = !self::$fastBuild ;}}//讀取快速建造的生效狀態的方法,用public為了能夠公開調用public function getStatus(){return self::$fastBuild ;}
}$cheatInstance1 = new cheat();//新增一個作弊對象
var_dump( $cheatInstance1->getStatus() );//打印狀態
$cheatInstance1->setStatus('operation cwal');//輸入秘籍
var_dump( $cheatInstance1->getStatus() );//打印狀態$cheatInstance2 = new cheat();//新增一個作弊對象
var_dump( $cheatInstance1->getStatus() );//打印狀態 發現和前一個對象共享了同一個狀態/*結論:單態模式不是通過唯一對象來保持一致,它將相關的成員設置為static,
這樣即使存在很多個它的對象,但它們共享成員,保持狀態的一致
單態模式用途總結:確保某個類所有的對象的成員在某些屬性上都一致,同時允許靈活的繼承這各類
但相對單件模式而言,系統資源開銷要大一些。
單態模式實現總結:把所有相關的成員設置為static。
*/
?>
?
轉載于:https://www.cnblogs.com/jiufen/p/4991509.html
總結
- 上一篇: 使用Screen使SSH关闭后Meteo
- 下一篇: ElasticSearch 2.0以后的