C++设计模式编程之Flyweight享元模式结构详解
1)Flyweight模式中,最重要的是将对象分解成intrinsic和extrinsic两部分。 外部状态取决于flyweight场景,并根据场景而变化,因此不可共享。ConcreteFlyweight对象必须是可共享的。Flyweight接口使共享成为可能,但它并不强制共享。在Flyweight对象结构的某些层次,UnsharedConcreteFlyweight对象通常将ConcreteFlyweight对象作为子节点。2)确保合理地共享Flyweight。 Flyweight 对对象的内部状态进行共享,只为每种内部状态创建一个实例,对内部状态使用了单例模式。 用户不应直接对ConcreteFlyweight类进行实例化,而只能从FlyweightFactory对象得到ConcreteFlyweight对象,这可以保证对它们适当地进行共享。3)按照需求可以对享元角色进行抽象。
下载地址
用户评论