知乎專欄 | 多維度架構 | 微信號 netkiller-ebook | QQ群:128659835 請註明“讀者” |
常用設計模式包括
Singleton 單件模式 Abstract Factory 抽象工廠模式 Builder 生成器模式 Factory Method 工廠方法模式 Prototype 原型模式 Adapter 適配器模式 Bridge 橋接模式 Composite 組合模式 Decorator 裝飾模式 Facade 外觀模式 Flyweight 享元模式 Proxy 代理模式 Template Method模板方法 Command 命令模式 Interpreter 解釋器模式 Mediator 中介者模式 Iterator 迭代器模式 Observer 觀察者模式 Chain Of Responsibility 職責鏈模式 Memento 備忘錄模式 State 狀態模式 Strategy 策略模式 Visitor 訪問者模式
<?php class Cache { private $cache = array(); public function __construct(){} public function set($key,$value){ if(!empty($key)){ $this->cache[$key] = $value; } } public function get($key){ if(array_key_exists($key, $this->cache)){ print($this->cache[$key]); } } }
<?php class Cache { private static $instance; private $cache = array(); private function __construct(){} public static function getInstance() { if(empty( self::$instance )){ self::$instance = new Cache(); } return self::$instance; } public function set($key,$value){ if(!empty($key)){ $this->cache[$key] = $value; } } public function get($key){ if(array_key_exists($key, $this->cache)){ print($this->cache[$key]); } } } $db = Cache::getInstance(); $db->set('name','netkiller'); $db->get('name'); print("\r\n"); $db1 = Cache::getInstance(); $db1->get('name'); $db1->set('age','30'); print("\r\n"); $db2 = Cache::getInstance(); $db2->get('name'); $db2->get('age'); print("\r\n"); unset($db1); $db->set('name','neo'); $db->get('age'); $db2->get('name'); print("\r\n"); print("---------------------------\r\n"); // private function __construct(){} //$db3 = new Cache(); //$db3->set('name','netkiller'); //$db1 = new Cache() //$db1->get('name');