微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在PHP中实现flyweight模式?

这是它的定义:

Use sharing to support large numbers
of fine-grained objects efficiently.

但我无法弄清楚究竟是什么意思.

你能用一个小小的演示来详细说明吗?

如果您需要特定类型的大量实例,则Flyweight模式非常有用.您将所有这些实例(内在状态)相同的数据隔离到共享对象中.您只保留实例本身(外部状态)中每个实例不同的数据.好处是显着减少了内存消耗.

这是游戏行业的常见模式,通常的例子是战场上的士兵.所有士兵都拥有相同的图形表示和相同的武器,但他们的位置和健康状况不同.那么外在状态只是他们在战场上的健康和x / y / z坐标,而其他一切都在Flyweight中.

用于此模式的PHP实现很容易在Web上找到.例如

> http://sourcemaking.com/design_patterns/flyweight的一般描述和
> http://sourcemaking.com/design_patterns/flyweight/php for PHP中的具体示例.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐