9得票2回答
为什么(GoF)享元是一个结构型(而不是创建型)的设计模式?

据我所知,享元设计模式与工厂模式或单例模式并没有太大的区别。它只是一个工厂,用于生产不可变(和共享的)对象。它只是一个单例,为每种类型(受管理对象的)提供一个实例,而不是全局单一实例。 工厂和单例都是创建型模式,那么为什么享元被认为是结构型模式?

9得票2回答
享元模式 vs 静态字段

在我看来,享元模式的目的是通过共享通用外部状态来减少内存占用并提高性能。为什么有人会选择实现这个模式而不是将共享状态存储在静态字段中呢? 考虑以下示例:http://www.oodesign.com/flyweight-pattern-wargame-example-java-sourcec...

8得票3回答
Python的写时复制行为

我正在解决一个问题,其中我正在实例化许多对象。大多数情况下,实例化的对象是相同的。为了减少内存开销,我希望所有相同的对象指向相同的地址。然而,当我修改对象时,我希望创建一个新的实例--基本上是写时复制行为。在Python中,最好的方法是什么? 享元模式接近于这个问题。下面是一个示例(来自ht...

8得票3回答
建造者模式和享元模式有什么区别?

在使用上,建造者模式和享元模式有何不同?因为它们都处理大量对象。

8得票1回答
如何在PHP中实现享元模式?

以下是它的定义: 使用共享来有效地支持大量细粒度对象。 但我无法确切理解它的含义。 您能否通过一个小演示进行详细说明?

7得票4回答
Hibernate和Flyweight

有没有办法在休眠持久性映射中使用享元对象?我的数据模型包含许多将是相同的对象。我想使用享元设计模式引用始终相同的物理对象,而不是为每个相同的对象分别创建实例。如何在Hibernate中实现这一点? 顺便问一下,所有JVM都会优化字符串的使用吗?例如,当相同的字符串被多次使用时,它将始终是相同...

7得票3回答
Flyweight设计模式和Java缓存的区别是什么?

我了解到享元设计模式可以存储可共享的对象以节省堆内存使用。Java缓存也可以保存可重复使用的对象以节省内存。那么享元设计模式和Java缓存之间的真正区别是什么?

7得票5回答
Java中的享元模式示例

我正在尝试在Java中创建一个享元对象。我曾经使用过Objective-C中的类似概念(Objective-C中的单例类//我认为它们是相同的东西)。 我想找到一个教程、示例或在线解释来学习如何创建和使用享元对象,但我在谷歌上搜索了十页,没有找到任何像样的内容。这些页面基本上都是从一个网站抄...

7得票3回答
使用Boost和外部数据源的轻量级对象

也许有一种简单的方法可以解决这个问题,但我没有看到,希望有人能给我解释一下。 假设我有一个类: class A { public: const double parameter; const std::string name; const std:: string fileNa...