Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
这是它的定义:
使用共享有效地支持大量细粒度对象。
但我无法弄清楚它的确切含义。
你能用一个小演示详细说明吗?
如果您需要大量特定类型的实例,享元模式很有用。您将所有这些实例(内在状态)相同的数据隔离到一个共享对象中。您仅将每个实例变化的数据保留在实例本身(外部状态)中。好处显然是更少的内存消耗。
这是游戏行业的常见模式,通常的例子是战场上的士兵。所有士兵共享相同的图形表示和相同的武器,但他们的位置和健康状况不同。外部状态将只有他们的健康和战场上的 x/y/z 坐标,而其他一切都在 Flyweight 中。
这种模式的 PHP 实现很容易在 Web 上找到。例如