大话设计模式
字体: 16 + -

第92章

小a:“为什么要使用享元模式?”

大b:“flyweight中两个重要概念内部状态intrinsic和外部状态extrinsic之分。说白点,就是先捏一个的原始模型,然后随着不同场合和环境,再产生各具特征的具体模型,很显然,在这里需要产生不同的新对象,所以flyweight模式中常出现factory模式。flyweight的内部状态是用来共享的,flyweightfactory负责维护一个flyweightpool(模式池)来存放内部状态的对象。”

大b:“flyweight模式是一个提高程序效率和性能的模式,会大大加快程序的运行速度。应用场合很多:比如你要从一个数据库中读取一系列字符串,这些字符串中有许多是重复的,那么我们可以将这些字符串储存在flyweight池(pool)中。”