标签:alt highlight string http class height img nts eol
运用共享技术有效的支持大量细粒度的对象.
UML:
示例代码:
如果在工厂中,有用户,我们就直接调用,没有用户,我们就获取.减少对同一uid的user对象的重复创建.
interface FlyWeight { public function __construct($uid); } class User implements FlyWeight { protected $uid; public function __construct($uid) { $this->uid = $uid; } public function __toString() { return ‘uid‘ . $this->uid . PHP_EOL; } } class Factory { public static $users = array(); public static function getUser($uid) { if (! array_key_exists($uid, self::$users)) { self::$users[$uid] = new User($uid); } return self::$users[$uid]; } } $user1 = Factory::getUser(1); $user2 = Factory::getUser(1); $user3 = new User(3); echo($user1); echo($user2); echo($user3);
标签:alt highlight string http class height img nts eol
原文地址:http://www.cnblogs.com/itfenqing/p/7788268.html