php設計模式-物件池模式(Object pool)
阿新 • • 發佈:2019-02-15
轉自:https://segmentfault.com/a/1190000003817321
物件池可以用於構造並且存放一系列的物件並在需要時獲取呼叫(類似註冊臺模式):
<?php class Product { protected $id; public function __construct($id) { $this->id = $id; } public function getId() { return $this->id; } } class Factory { protected static $products = array(); public static function pushProduct(Product $product) { self::$products[$product->getId()] = $product; } public static function getProduct($id) { return isset(self::$products[$id]) ? self::$products[$id] : null; } public static function removeProduct($id) { if (array_key_exists($id, self::$products)) { unset(self::$products[$id]); } } } Factory::pushProduct(new Product('first')); Factory::pushProduct(new Product('second')); print_r(Factory::getProduct('first')->getId()); // first print_r(Factory::getProduct('second')->getId()); // second