请教前辈们:关于FlyWeight的理解

看了banq的教程,还是有些不解,希望前辈们可以为俺解惑:

我比较容易理解的一种解决方法是:将ConcreteFlyweight类作为HashTable的key,而ExtrinsicState类则是对应的value,这样来建立内外部状态之间的一种关联。但是教程中的描述是将ConcreteFlyweight作为value传进去,其本身只有一个process函数处理ExtrinsicState,但是并没有保存共享的内部状态与外部状态的对应关系,这部分对应关系在哪里实现呐?

具体来说:在引用的cd库的例子中,HashTable存放了Artist的信息,此外的保存year和cdname信息的ExtrinsicState类如何处置呢,他们与artist的对应关系又如何呢?

谢谢回答

内部状态与外部状态的对应关系?
不是很明白你的问题,这种对应关系应该不是这里讨论的重点,已经被隐去。

Flyweight应是一种对象池中对象重用的概念吧. 象statless bean 和 db connection pool. 欢迎讨论.

初学模式,一些概念还比较模糊

俺只是看那个教程的时候例子代码没看懂,

故有此一问,待会儿再仔细看看

利用flyweight时,ConcreteFlyweight和ExtrinsicState之间的关系很可能是在外部保存的。
比如,cd这个例子中的所有关系是在一份xml文件中。