26得票4回答
为什么会有“轻量级设计模式(Flyweight Design Pattern)”这个名称的原因是什么?

我是一名非英语母语者,想更好地理解设计模式,我对这个命名模式的词源很感兴趣。这个命名的动机是什么? 据我所知,轻量级设计模式关注的是通过共享方式支持大量细粒度对象。 然而,我找到的有关“轻量级”这个词的定义指的是拳击中不到112磅的体重级别。 那么,为什么要用这种方式来命名这个模式呢? ...

24得票3回答
享元模式与对象池模式:何时使用?

据我所知,对象池是一种创建型模式,而享元是一种结构型模式,但实际上我不能看到它们之间有太大的区别。请问有人能向我解释一下它们之间的区别以及在实现中何时使用每个模式?

21得票7回答
Java是如何在底层实现字符串享元模式的?

如果您有两个相等的字符串实例,它们在Java中将共享同一块内存。这在底层是如何实现的? 编辑:我的应用程序使用了大量的String对象,其中许多是相同的。最好的方法是利用Java String常量池,以避免创建自定义的轻量级实现?

18得票4回答
理解享元模式

目的: 本模式的目的是通过共享来支持一大批拥有部分内部状态相同,但其余状态可变的对象。 对象可以通过静态字段共享状态。 使用享元模式共享内部状态与使用静态字段有何区别? 享元通过其工厂提供的对象池是享元真正关注的吗?

16得票3回答
原型模式 vs 享元模式设计模式

我需要找出原型模式和享元模式之间的一些区别。我知道最基本的区别在于前者进行深度复制,而后者使用共享对象。我的讲师说还有更多的不同之处。 有人知道其他的区别吗?

14得票6回答
Java的String Intern是一种轻量级模式吗?

Java的String内存池的实现是否遵循享元模式? 我对此有疑问是因为在Intern中没有外在状态。在GoF中,我读到应该在内在和外在状态之间保持适当的平衡。但在intern中,一切都是内在的。 或者我们可以说并没有关于属性的严格规定,只需共享对象以减少内存即可称之为享元。 请帮助我理解。

11得票3回答
轻量级和工厂模式中的IDisposable问题

我似乎陷入了享元模式的思维僵局。 首先,假设我有一个可丢弃类型 DisposableFiddle 和一个工厂 FiddleFactory:public interface DisposableFiddle : IDisposable { // Implements IDisposab...

11得票4回答
在享元模式中,内部状态和外部状态有什么区别?

从四人帮中的FlyWeight模式章节来看,当大多数对象状态可以变为外在状态时,FlyWeight模式是适用的。 外在状态是什么意思?我感觉这个模式用于对象共享。如果对象要共享,那么它怎么可能有任何状态呢?

10得票2回答
如何使boost unordered_map支持flyweight<string>?

我正在尝试做以下事情:boost::unordered_map&lt;boost::flyweight&lt;std::string&gt;, boost::flyweight&lt;std::string&gt; &gt; map; boost::flyweight&lt;...

10得票5回答
Java中字符串享元实现的最佳替代方案

我的应用程序是多线程且涉及大量字符串处理。我们遇到了过度的内存消耗问题,并且分析表明这是由于字符串数据造成的。我认为使用某种飞行权重模式实现甚至缓存(我知道字符串经常被复制,尽管在这方面我没有任何硬数据)将极大地受益于内存消耗。 我查看了Java常量池和String.intern,但似乎会引...