首页 > 代码库 > Flyweight Design Pattern 共享元设计模式

Flyweight Design Pattern 共享元设计模式

就是利用一个类来完成多种任务,不用每次都创建一个新类。

个人觉得这个设计模式在C++里面,好像可以就使用一个函数代替,利用反复调用这个函数完成任务和反复利用这个类,好像差不多。

不过既然是一个设计模式,那么就使用类来完成任务。而对于Java来说是不面向过程的,故此就必须使用这个设计模式了。

我这里设计一个仓库来保存这样的类,需要的时候反复取出来使用。

非常简单的设计模式:

#include <stdio.h>

class ReusedObject
{
public:
	ReusedObject() {}
	void finishTask()
	{
		puts("Use reused object to do task.");
	}
};

class Warehouse
{
	ReusedObject *obj;
public:
	Warehouse()
	{
		obj = new ReusedObject;
	}

	~Warehouse()
	{
		delete obj;
	}

	ReusedObject *getObject()
	{
		return obj;
	}
};

int main()
{
	Warehouse wh;
	ReusedObject *obj = wh.getObject();
	obj->finishTask();
	return 0;
}