C++ 设计模式(八) FlyWeight模式

来源:互联网 发布:淘宝客服每周工作总结 编辑:程序博客网 时间:2024/05/17 16:53

问题:

   在面向对象的设计过程中,可能需要创建创建许多对象,而实际上这些对象没有多大的区别,我们可以创建一个对象,让这许多对象共享一个对象,当然这些对象可能会有些许属性差异,我们可以通过调整这些属性来达到我们的要求。这样的好处是可以避免重复创建对象带来空间和时间的浪费。

 

UML:

 

 

实现:

    需要说明的是下面的实现仅仅实现了对可共享对象的使用,非可共享对象的使用没有列出,因为这个不是Flyweight模式的重点.这里的实现要点是采用一个vector来保存这些可以被共享的对象,需要使用的时候就到链表中查询是不是已经存在了,如果不存在就初始化一个,然后返回这个对象的指针.

flyweight.h

 

 

flyweight.cpp

 


flyweightfactory.h

 

flyweightfactory.h

 

 

 

main.cpp