S7:享元模式 Flyweight
Posted 罗夏
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了S7:享元模式 Flyweight相关的知识,希望对你有一定的参考价值。
运用共享技术有效的支持大量细粒度的对象.
应用场景:
A.减少对相同对象的重复创建
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(2); $user3 = new User(3); echo($user1); echo($user2); echo($user3);
以上是关于S7:享元模式 Flyweight的主要内容,如果未能解决你的问题,请参考以下文章